如果不使用“同步”或“易失性”关键字,那么一个线程所做的更改将永远不会被另一个线程看到(或者是未定的),这是否正确?我在多核平台上多次运行以下程序,结果是不同的.有时程序永远不会终止,这是预期的场景。但有时它会在打印"1“时退出。
JDK: jdk1.8.0_73
操作系统:CentOS Linux版本7.1.1503
public class VolatileTest implements Runnable {
private int i = 0;
public void run() {
i++;
i++;
}
pu
我在某个地方读到,互斥量的开销并不大,因为上下文切换只发生在争用的情况下。
在Linux中也知道Futexes。
同样的东西在Windows中也适用吗?是一个更适合于Linux中互斥的映射。
从我收集到的信息来看,与Mutex相比,关键部分提供了更好的最佳性能,这对每种情况都是正确的吗?
在Windows中,是否存在互斥量比关键部分快的情况。
假设只有一个进程线程正在访问互斥项(只是为了消除关键部分的其他好处)。
添加信息: OS windows Server,
Language C++