0
爲什麼我的Java線程似乎只在一個內核上運行,當我的機器有兩個?爲什麼我的Java線程似乎只在一個內核上運行,當我的機器有兩個?
我的程序有10個線程,每個打印更多的東西。 在輸出中,我可以看到打印的順序是:一旦線程開始完成,只有另一個線程開始打印。 因此,我不希望看到來自不同線程的交錯打印語句。
public class Calculator implements Runnable {
private int number;
public Calculator(int number) {
this.number=number;
}
@Override
public void run() {
for (int i=1; i<=10; i++){
System.out.printf("%s: %d * %d =
%d\n",Thread.currentThread().getName(),number,i,i*number);
}
}
}
public class Main {
public static void main(String[] args) {
for (int i=1; i<=10; i++){
Calculator calculator=new Calculator(i);
Thread thread=new Thread(calculator);
thread.start();
}
}
}
問候
代碼很重要。向我們展示代碼。 –
你正在使用什麼操作系統?你用什麼JRE? – Jeffrey
請添加更多信息(如代碼)。我不認爲你在看線程是如何工作的......否則請閱讀文檔:http://docs.oracle.com/javase/tutorial/essential/concurrency/ – pmac89