次のダミーコードがある場合:
public static void main(String[] args) {
TestRunnable test1 = new TestRunnable();
TestRunnable test2 = new TestRunnable();
Thread thread1 = new Thread(test1);
Thread thread2 = new Thread(test2);
thread1.start();
thread2.start();
}
public static class TestRunnable implements Runnable {
@Override
public void run() {
while(true) {
//bla bla
}
}
}
私の現在のプログラムでは、同じような構造、つまり同じ Run() メソッドを実行する 2 つのスレッドがあります。しかし、何らかの理由でスレッド 1 のみに CPU 時間が与えられます。つまり、スレッド 2 は実行する機会がありません。これは、スレッド 1 が while ループにある間、スレッド 2 が待機しているためですか?
スレッドがwhileループにある場合、他のスレッドを「ブロック」しているのでしょうか。私はそう思いますが、100%確実ではないので、ここで実際に何が起こっているのか誰かが私に知らせてくれたらうれしいです.
編集 さて、本当に単純な例をもう一度作成しようとしましたが、両方のスレッドが CPU 時間を取得しています。ただし、これは私の元のプログラムには当てはまりません。どこかのバグに違いない。それを今調べています。みんなのおかげで、少なくとも私はその知識を得ることができました。