Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET:CLR是否会自动为堆分配的对象引入基本线程安全(锁)?_C#_.net_Clr_Thread Safety - Fatal编程技术网

C# .NET:CLR是否会自动为堆分配的对象引入基本线程安全(锁)?

C# .NET:CLR是否会自动为堆分配的对象引入基本线程安全(锁)?,c#,.net,clr,thread-safety,C#,.net,Clr,Thread Safety,我的意思是对于一些基本操作,比如类属性的读/写。 或者,它引入了一些更高级别的同步?不,它没有。您必须自己同步对对象的访问。在32位平台上单独读取/写入32位值是原子的,但这并不意味着对对象的更新是线程安全的 由于同步会增加一些开销,因此为所有对象添加这一开销可能会对整体性能造成重大影响 没有。您必须自己同步对对象的访问。在32位平台上单独读取/写入32位值是原子的,但这并不意味着对对象的更新是线程安全的 由于同步会增加一些开销,因此为所有对象添加这一开销可能会对整体性能造成重大影响 否,不保证

我的意思是对于一些基本操作,比如类属性的读/写。
或者,它引入了一些更高级别的同步?

不,它没有。您必须自己同步对对象的访问。在32位平台上单独读取/写入32位值是原子的,但这并不意味着对对象的更新是线程安全的


由于同步会增加一些开销,因此为所有对象添加这一开销可能会对整体性能造成重大影响

没有。您必须自己同步对对象的访问。在32位平台上单独读取/写入32位值是原子的,但这并不意味着对对象的更新是线程安全的


由于同步会增加一些开销,因此为所有对象添加这一开销可能会对整体性能造成重大影响

否,不保证螺纹安全。例如,您可以在引用类型实例上使用lock关键字来实现简单互斥功能。定义哪些操作是不带锁的原子操作


新的.NET 4现在包含了线程安全类,这样可以更轻松地编写代码,而不必自己关心锁。

不,线程安全没有保证。例如,您可以在引用类型实例上使用lock关键字来实现简单互斥功能。定义哪些操作是不带锁的原子操作

新的.NET4现在包含了线程安全类,这样可以更容易地编写代码,而不必自己关心锁