Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

我们编写的C/C++代码在处理器上实际的执行顺序和其在源码中的顺序可能并不相同。编译器会通过指令重排优化编译效果,CPU也会通过乱序执行优化执行效率。本文将介绍编译时的内存重排。

原文链接:https://preshing.com/20120515/memory-reordering-caught-in-the-act/ 用C/C++编写无锁代码时,必须特别注意强制执行正确的内存顺序。否则,可能会发生令人惊讶的事情。Intel SDM卷3第8.2.3节举了几个例子。这是最简单的例子之一。假设您在内存中保存了两个整数X和Y,初始值都为0。两个并行运行的处理器执行以下...

在阅读内核源码spin_lock的实现时,发现有大量关于lock-free编程的知识,如smp_cond_load_relaxedatomic_try_cmpxchg_acquire的实现。延展阅读,发现了这些涉及到memory order、atomic、cache consistency等知识点。经过google,我发现Preshing on Programming这个博客对lock-free的方方面面介绍的较为详细,并且作者将这些知识点在Mintomic(C/C++ lock-free programming API)项目中付诸实践。

网上很多CentOS7网络配置的教程往往都会建议关闭Networkmanager使用network.service的方式进行网络配置:1. 配置/etc/sysconfig/network-scripts/ifcfg-<net device>.cfg;2. systemctl restart network重启网络生效。 3. 建议关闭NetworkManger,防止和netwo...