我cnt
在 nested 中有一个变量 () parallel.foreach
。我运行这个程序,显然它运行良好。有人知道这段代码真的是线程安全的吗?parallel
是否可以在循环内定义变量?
谢谢你。
object obj = new object();
int total=0;
Parallel.For(0, 2, i =>
{
Parallel.For(0, 1000000, j =>
{
int cnt = 0;
if ((arr[i, j] % 2) == 0)
{
Interlocked.Increment(ref cnt);
}
lock (obj)
{
total= total+ (cnt / 2);
}
});
});