C产品在市场上有哪些独特优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计428个文字,预计阅读时间需要2分钟。
1. `lock`关键字保证一个代码块在执行过程中不会被其他线程干扰,这是通过在该代码块运行期间对特定对象加锁来实现的。
2.`lock`关键字的参数必须是引用类型对象。
1. lock关键字保证一个代码块在执行的过程中不会受到其他线程的干扰,这是通过在该代码块的运行过程中对特定的对象加互斥锁来实现的。
2. lock关键字的参数必须是引用类型的对象。lock对基本数据类型如int,long等无效,因为它所作用的类型必须是对象。如果传入long类型数据,势必被转换为Int64结构类型,则加锁的是全新的对象引用。如果需要对它们进行互斥访问限制,可以使用System.Threading.Interlocked类提供的方法,这个类是提供原子操作的。
3. lock(this)的使用要慎重。共有类型中使用lock(this),如果新的对象被创建并加锁,极易造成死锁。
4. 锁定ICollection类型对象时,应lock其SyncRoot属性。
SyncRoot属性在接口ICollection中声明,其实现方式各不相同。
本文共计428个文字,预计阅读时间需要2分钟。
1. `lock`关键字保证一个代码块在执行过程中不会被其他线程干扰,这是通过在该代码块运行期间对特定对象加锁来实现的。
2.`lock`关键字的参数必须是引用类型对象。
1. lock关键字保证一个代码块在执行的过程中不会受到其他线程的干扰,这是通过在该代码块的运行过程中对特定的对象加互斥锁来实现的。
2. lock关键字的参数必须是引用类型的对象。lock对基本数据类型如int,long等无效,因为它所作用的类型必须是对象。如果传入long类型数据,势必被转换为Int64结构类型,则加锁的是全新的对象引用。如果需要对它们进行互斥访问限制,可以使用System.Threading.Interlocked类提供的方法,这个类是提供原子操作的。
3. lock(this)的使用要慎重。共有类型中使用lock(this),如果新的对象被创建并加锁,极易造成死锁。
4. 锁定ICollection类型对象时,应lock其SyncRoot属性。
SyncRoot属性在接口ICollection中声明,其实现方式各不相同。

