【发布时间】:2010-10-10 10:53:21
【问题描述】:
假设您正在多核系统中使用并行。
难道不完全有可能同时执行相同的指令吗?
取以下代码:
int i = 0;
if( blockingCondition )
{
lock( objLock )
{
i++;
}
}
在我的脑海中,似乎很有可能在具有多核和并行性的系统上,blockingCondition 可以在同一时刻被检查,从而导致在同一时刻尝试锁定,等等。 .这是真的吗?
如果是这样,您如何确保跨处理器同步?
另外,.net TPL 是否处理这种类型的同步?其他语言呢?
编辑 请注意,这不是关于线程,而是关于任务和并行处理。
编辑 2 好的,谢谢大家的信息。那么操作系统是否会确保写入内存是序列化的,通过易失性读取确保多核同步?
【问题讨论】:
标签: c# java .net parallel-processing task-parallel-library