我正在执行java-synchronisation example :
线程调用代码:
Caller ob1 = new Caller(target, "Hello");
Caller ob2 = new Caller(target, "Synchronized");
Caller ob3 = new Caller(target, "World");
输出:
[Hello] [World] [Synchronized]
为什么“Synchronized”最后被打印,尽管它是在第二个调用的?
最佳答案
无法保证执行顺序。这是 JVM 的决定。
调用 Thread 实例的 start() 方法并不能保证它会在方法调用后立即运行。
关于java - 同步线程执行顺序的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11274643/