如果我有以下哑代码:while循环中的线程是否会给另一个相同类型的线程提供CPU时间?
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
}
}
}
以我当前节目我具有类似的结构,即两个线程执行相同的运行()方法。但由于某些原因,只有线程1被给予CPU时间,即线程2从来没有机会运行。这是因为当线程1处于while循环时,线程2等待?
我不完全确定,如果一个线程在while循环中是“阻塞”其他线程?我会这么认为,但不是100%肯定的,所以很高兴知道是否有人能告诉我这里发生的事情。
编辑 好吧,试图再次做一个非常简单的例子,现在两个线程都获得CPU时间。然而,我的原始程序并非如此。必须是某个地方的错误。现在看看。感谢大家清理它,至少我得到了这些知识。
为我运行'JavaSE-1.7'。你使用1.7还是1.6? –