![]() |
1
12
我们来回答被问到的问题:
好吧,我们不要回答被问到的问题,因为那个问题太复杂了。让我们把它分解成一系列不那么复杂的问题。
极其糟糕 等待一个线程向另一个线程发出信号的方法。永远不要坐在一个严密的环投票国旗!像个明智的人一样使用等待手柄。)
更多 有关详细信息,请阅读C规范中有关特殊副作用的部分。 一如既往,我要提醒你 挥发物不能保证你的新鲜度
不。
首先不要编写多线程程序。在一个程序中有多个控制线程是个坏主意。
如果必须跨线程共享内存,请使用
,而不是
最低水平
. 使用
|
![]() |
2
2
|
![]() |
3
2
这不是正确的观点。重要的是如何指定语言的行为。JIT只能在不违反规范的约束下进行优化。因此,优化对程序是不可见的。这个问题中的代码的问题不是它正在被优化。问题是规范中的任何内容都不能强制程序正确。为了解决这个问题
你不能上锁
取消一个循环
你也可以使用
|
![]() |
4
0
volatile关键字实现了所谓的acquire和release语义,因此使用它来进行简单的线程同步是完全合法的。任何符合标准的JIT引擎都不应该优化它。 当然,它是一种虚假的语言特性,因为C/C++具有不同的语义,这是大多数程序员可能已经习惯的。所以“volatile”的C#specific和Windows specific(ARM架构除外)用法有时令人困惑。 |
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
|
Dansih · .Net核心自定义身份验证方案 2 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 2 年前 |