gpt4 book ai didi

.net - 线程启动是否具有隐式内存屏障?

转载 作者:行者123 更新时间:2023-12-05 01:28:07 28 4
gpt4 key购买 nike

即当我启动一个新线程时,读取在线程从新启动的线程启动之前初始化的任何变量是否安全?

UPD 为什么我要问?因为一些开发人员认为它确实有,并且不在那里使用任何显式内存屏障。我无法重现该代码中的任何错误。但是,文档 http://msdn.microsoft.com/en-us/library/ms686355(v=vs.85).aspx并不是说这是安全的。

最佳答案

是的,操作系统提供了隐式障碍。如果没有保护线程调度程序数据结构的内部锁,它就无法启动线程。

我知道这没有明确 promise 。从 .NET 2.0 开始,Thread 和 ProcessThread 之间不再有直接的对应关系。应 SQL Server 团队的要求,该链接已断开,该团队希望使用光纤实现线程。这实际上并没有发生,当他们无法使其足够可靠时,他们放弃了该项目。考虑到这个项目的结果和我所知道的没有一个主流项目试图再次利用这一点,以及实现不使用锁的线程支持的困难,我认为可以安全地假设您可以依靠隐式障碍。

关于.net - 线程启动是否具有隐式内存屏障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10672495/

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