java - 同步线程执行顺序的变化

标签 java multithreading synchronization

我正在执行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/

相关文章:

java - JasperReports : Unsupported major. 次要版本 51.0

java - 从 Thymeleaf 访问常量(没有 spring)

java - Jackson 反序列化对象内部字段

java - object.wait 和 Thread.sleep() 的 CPU 周期

跨线程中的 C++ 同步和异常处理

java - 使用 "notify()"& "wait()"而不是 "suspend()"和 "resume()"来控制线程

Java错误: Default constructor cannot handle exception type FileNotFound Exception

c++ - TCP 接收使用率 100% CPU

Java "Breakout"克隆 : Suspending and resuming thread

java - 如何创建 session 范围的线程安全对象实例?