CPU单核:需要易失性还是​​同步?

时间:2012-02-08 02:36:56

标签: java multithreading concurrency volatile

在Java中,Volatile和synchronized make多线程可以协同工作并相互理解。但是,如果你在单核系统上使用多线程,它意味着不是真正的多线程工作,操作系统只是从这个线程变为线程。 (因此,一个变量只是在恰好使用一个时刻)

因此,我认为没有必要使用诸如volatile或synchronized之类的安全线程技术。 这是真的吗?

谢谢:)

3 个答案:

答案 0 :(得分:4)

你错了。同步在单核系统上仍然是一个问题,因为JRE可能在任何时候切换线程(包括线程处于关键部分时)。

答案 1 :(得分:1)

同步与核心数量无关。它基于竞争共享资源的线程数量。当多个线程竞争时,您需要同步。

答案 2 :(得分:1)

同步非常重要,无论是单核还是多核系统。为了防止死锁,您需要正确使用Synchronisation.and除了死锁预防,同步在GUI应用程序中也是必不可少的,我们需要在后台计算密集型事物并定期更新GUI。