我正在重新认识Java。我正在做多线程并测试优先级逻辑。我有一个主类和另一个实现runnable的类,
public class Threading {
public static void main(String[] args) {
System.out.println("Main priority is: " + Thread.currentThread().getPriority());
MyRunnable myRunnable = new MyRunnable();
Thread thread1 = new Thread(myRunnable);
thread1.setPriority(10);
thread1.setName("MyRunnable");
thread1.start();
for (int i = 0; i < 5; i++) {
System.out.println("Main Thread !!");
}
}
}
实现Runnable的类位于下面,
class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("Executing Thread name is: " + Thread.currentThread().getName());
for (int i = 0; i < 5; i++) {
System.out.println("Implements Runnable !!");
}
}
}
如果我的理解是正确的,首先应该完成MyRunnable类中的循环,然后是main方法中的循环,因为我为MyRunnable类设置了更高的优先级10。但是我得到了混合输出,但是有时候打印主线程然后是Implements Runnable。我理解处理器或正在研究的O.S可能对输出产生影响。感谢您的投入。