gpt4 book ai didi

c# - 此代码中是否需要 MemoryBarrier?

转载 作者:行者123 更新时间:2023-11-30 21:18:04 25 4
gpt4 key购买 nike

using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
static void Main()
{
double[] numbers = new double[10000];

Parallel.For(0, 9999, index => numbers[index] = index * 3);

Thread.MemoryBarrier();

// do something with numbers
}
}

上面是否需要 MemoryBarrier(),或者 Parallel.For 是否具有“内置”内存屏障?

最佳答案

当你做一个并行时,不需要内存屏障。对于调用函数的线程等待任务结束,如果等待,它可能使用一些同步器,通知等待线程,当一个同步器通知“需要”有一个释放屏障,一个释放屏障保证上面代码中所做的所有更改都是全局可见的,所以你不需要 memory.barrier

关于c# - 此代码中是否需要 MemoryBarrier?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com