タグ付けされた質問 「java-threads」

30
Javaでの「実行可能な実装」と「スレッドの拡張」の比較
私がJavaでスレッドを使ったときから、スレッドを作成する次の2つの方法を見つけました。 とimplements Runnable: public class MyRunnable implements Runnable { public void run() { //Code } } //Started with a "new Thread(new MyRunnable()).start()" call それとも、とextends Thread: public class MyThread extends Thread { public MyThread() { super("MyThread"); } public void run() { //Code } } //Started with a "new MyThread().start()" call これら2つのコードブロックに大きな違いはありますか?

30
wait()とsleep()の違い
違いは何であるwait()とsleep()スレッドでは? wait()-ingスレッドはまだ実行モードにあり、CPUサイクルを使用していますが、sleep()-ingはCPUサイクルを消費しないという理解は正しいですか? なぜ両方が wait()ありsleep()、それらの実装は下位レベルでどのように異なるのですか?

12
同じクラスで2つのメソッドを同期した場合、それらは同時に実行できますか?
同じクラスで2つのメソッドを同期した場合、同じオブジェクトで同時に実行できますか?例えば: class A { public synchronized void methodA() { //method A } public synchronized void methodB() { // method B } } methodA()2つの異なるスレッドで同じオブジェクトを2回実行することはできません。で同じことmethodB()。 しかし、実行中methodB()に別のスレッドで実行できmethodA()ますか?(同じオブジェクト)


12
IllegalMonitorStateExceptionなしでJavaで待機と通知を使用する方法
2つの行列があり、それらを乗算して、各セルの結果を出力する必要があります。1つのセルの準備ができたらすぐに印刷する必要がありますが、たとえば[2] [0]の結果が最初に準備できたとしても、セル[2] [0]の前に[0] [0]セルを印刷する必要があります。ですから、注文順に印刷する必要があります。したがって、私の考えはmultiplyThread、正しいセルを印刷する準備ができたことをが通知するまでプリンタスレッドを待機させ、次にprinterThreadがセルを印刷して待機に戻る、などです。 だから私は乗算を行うこのスレッドを持っています: public void run() { int countNumOfActions = 0; // How many multiplications have we done int maxActions = randomize(); // Maximum number of actions allowed for (int i = 0; i < size; i++) { result[rowNum][colNum] = result[rowNum][colNum] + row[i] * col[i]; countNumOfActions++; // Reached …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.