欢迎光临散文网 会员登陆 & 注册

资源访问冲突问题

2023-03-30 08:08 作者:此城过客  | 我要投稿

使用锁,需要先声明一个锁。锁可以是任意类型的对象。一般会声明一个Object类型的对象。

private Object _lock = new object();//这个对象不能为空,必须new一个。

要解决资源冲突问题,多个线程要使用同一把锁。

lock (_lock)//大括号里面写代码,就是你要把它锁上的代码

{

}

有可能会有多个线程去拿锁,但是锁只会被一个线程拿到,不会被多个线程拿到

当锁被某个线程拿到了,其他线程拿不到,怎么办?他就会在这等着

拿到锁的线程,就会执行大括号里的代码,执行完后,锁自动解开

其他线程就可以开始拿这个锁了

哪个线程抢到了锁,就可以执行锁里面的代码。


锁的优点:解决了资源冲突问题;

缺点:在同一个时间内,只能被一个线程执行,会拖慢多线程执行速度

示例:


资源访问冲突问题的评论 (共 条)

分享到微博请遵守国家法律