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现在包含了线程安全类,这样可以更容易地编写代码,而不必自己关心锁