【问题标题】:CPU Single Core : Need volatile or synchronized?CPU 单核:需要易失性或同步?
【发布时间】:2012-02-08 02:36:56
【问题描述】:

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

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

谢谢:)

【问题讨论】:

  • 当您在具有多个 CPU 的计算机上运行代码时会发生什么?安全总比后悔好。

标签: java multithreading concurrency volatile


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-02-19
        • 2021-10-24
        • 2012-02-08
        • 2016-04-04
        • 2016-07-02
        • 2013-01-12
        • 1970-01-01
        相关资源
        最近更新 更多