前述:
C#中支持多线程,而多线程引发的一个比较突出的问题就是在同一个时间里,可能会有多个线程访问同一个资源,引起资源的竞争
导致数据损坏。
lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。
很多时候,我们在使用Lock关键字,其锁住的不是多个线程里真正要竞争的资源,而是通过创建一个与竞争资源“随行”的锁对象,对它进行加锁,“随行”即这个锁对象在每次访问竞争资源时,都要先加锁它。
如:
前述:
C#中支持多线程,而多线程引发的一个比较突出的问题就是在同一个时间里,可能会有多个线程访问同一个资源,引起资源的竞争
导致数据损坏。
lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。
很多时候,我们在使用Lock关键字,其锁住的不是多个线程里真正要竞争的资源,而是通过创建一个与竞争资源“随行”的锁对象,对它进行加锁,“随行”即这个锁对象在每次访问竞争资源时,都要先加锁它。
如: