Jos*_*rke 15 language-agnostic multithreading
灵感来自这个问题:在复杂性分析中,为什么++被认为是2个操作?
请使用以下伪代码:
class test
{
int _counter;
void Increment()
{
_counter++;
}
}
Run Code Online (Sandbox Code Playgroud)
在x86架构上,这会被认为是线程安全的吗?还有更多的是Inc/Dec装配说明线程安全吗?
Rob*_*edy 32
不,递增不是线程安全的.既不是INC和DEC指示.它们都需要加载和存储,并且在另一个CPU上运行的线程可以自己加载或存储在这些操作之间交错的相同内存位置上.
有些语言内置了对线程同步的支持,但它通常是你必须要求的东西,而不是你在每个变量上自动获得的东西.那些没有内置支持的人通常可以访问提供类似功能的库.
| 归档时间: |
|
| 查看次数: |
2936 次 |
| 最近记录: |