java - CPU 单核 : Need volatile or synchronized?

标签 java multithreading concurrency volatile

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

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

谢谢:)

最佳答案

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

关于java - CPU 单核 : Need volatile or synchronized?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9187088/

相关文章:

java - 将文件作为 RandomAccessFile 打开并映射为 MappedByteBuffer 后重命名

java - 当一个 @Around 建议无法继续时,建议优先级问题

java - 如何在Java中的不同对象之间进行等待和通知?

c# - 在 C# 中,为了线程安全使用 Queue.Synchronized 或 lock() 会更好吗?

concurrency - Futures : Rust vs runtime-based languages 的完成与就绪方法

java - 半透明窗口错误让我头疼

java - 为什么我们不把所有东西都静态化呢?

ruby - Ruby 多线程的奇怪行为

go - 如何在运行例程时将值分配给结构?

java - 需要帮助设计 "infinite"线程