首页 > 解决方案 > 既然加入保证顺序为什么我们需要在java中同步

问题描述

我对多线程很陌生。我有 2 个线程 t1,t2。每个线程调用计数为整数 1000 次。所以最终输出应该是 2000。如果我使用 t1.join();t2.join(); 它应该返回 2000。因为加入将确保 t2 将在 t1 之后运行。

但是为什么它没有发生,如果加入确保了我们为什么需要同步的顺序?

标签: multithreadingsynchronization

解决方案


join() 不会启动线程(调用 join() 时它已经启动,因此 join 不能“确保顺序”)。它等待线程结束。但是,在您等待线程结束时,其他线程可以运行。


推荐阅读