C&#x2F;C++ language designers used to take the position that concurrency was an OS issue, not a language issue. That came unglued as processors did more and more out of order operations.<p>C&#x2F;C++ language doesn&#x27;t really understand concurrency. Even locking is iffy, because the language doesn&#x27;t know what data is locked by a lock.  Rust, and to a lesser extent Java, associate locks with data, which gives the compiler some info to guide what it can&#x27;t optimize.  C&#x2F;C++ have a whole series of kludges - &quot;volatile&quot;, &quot;atomic&quot;, etc., which patch holes in race conditions but don&#x27;t provide a coherent concurrency model.  Which is why we see papers like this.