我真的对多线程感到困惑。我知道这个事实
“线程是不可预测的”
这个事实是否仅适用于相同优先级的线程?如果没有,那么需要设置线程的优先级。
我的意思是假设这段代码:
public class Threadsync implements Runnable{
Thread t;
String str;
public Threadsync(String name)
{
this.str=name;
this.t=new Thread(this,name);
this.t.start();
this.t.setPriority(10);
}
public void run()
{
System.out.println("hello "+str);
}
public static void main(String[] args)
{
new Threadsync("thread1"); //1
new Threadsync("thread2"); //2
System.out.println("world"); //3
}
}
这是我的代码,我得到的输出是 hello thread1 world hello thread2
关于线程1和线程2没有混淆,但是为什么线程2输出消息world
之前主线程输出消息,hello thread2
即使线程2的优先级几乎是主线程的两倍。提前致谢 。详细的解释将是非常可观的