lock.lock=new reectrantlock()什么意思
答案:2 悬赏:60
解决时间 2021-02-04 00:17
- 提问者网友:依靠
- 2021-02-03 00:24
lock.lock=new reectrantlock()什么意思
最佳答案
- 二级知识专家网友:萝莉姐姐鹿小北
- 2021-02-03 00:55
不摆大理论,理论的大是大非自己去MSDN研读。
lock就是把{}中的代码段锁定,防止多个线程同时运行该代码段。
用法:
private void Do()
{
threat t1=new threat(doSomething);
threat t2=new threat(doSomething);
t1.Start();
t2.Start();
}
object locker=new object();
private void doSomething()
{
...........
.........
lock(locker)
{
FunLog() ;
}
........
}
比如说上面这样,当t1执行到lock时,检测发现locker不在锁定列表中,它会记录locker的内存地址,加入到锁定列表,并开始执行lock的锁定代码段;t2再执行到lock时,检测发现locker的内存地址是在锁定列表中的,于是线程等待;t1执行完FunLog到达lock结尾,将locker地址从锁定列表删除;t2检测发现locer已不在锁定列表中,它会记录locker的内存地址,加入到锁定列表,并进入执行lock的代码段。
lock就是把{}中的代码段锁定,防止多个线程同时运行该代码段。
用法:
private void Do()
{
threat t1=new threat(doSomething);
threat t2=new threat(doSomething);
t1.Start();
t2.Start();
}
object locker=new object();
private void doSomething()
{
...........
.........
lock(locker)
{
FunLog() ;
}
........
}
比如说上面这样,当t1执行到lock时,检测发现locker不在锁定列表中,它会记录locker的内存地址,加入到锁定列表,并开始执行lock的锁定代码段;t2再执行到lock时,检测发现locker的内存地址是在锁定列表中的,于是线程等待;t1执行完FunLog到达lock结尾,将locker地址从锁定列表删除;t2检测发现locer已不在锁定列表中,它会记录locker的内存地址,加入到锁定列表,并进入执行lock的代码段。
全部回答
- 1楼网友:狙击你的心
- 2021-02-03 02:32
lock on: |
1. | we must put a new lock on the front door. 我们得在前门上安一把新锁。 |
2. | it have a lock on it. 它上面有锁。 |
3. | the cold has frozen the lock on the car door. 严寒已把汽车的门锁冻结起来。 |
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |