c# lock语句的疑问

wdw4536 2013-11-04 09:44:21
大家好,c#入门经典及高级编程书中,在lock语句使用的章节中有这句话:在一个地方使用lock语句并不意味着,访问对象的其他线程都正在等待。必须对每个访问共享状态的线程显式地使用同步功能。
又有另一句:lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。

一句说其他线程会一直等待(被阻止),一句说不意味着其他线程都在等待,到底哪句才是正确的?还是怎样理解这两句话?
...全文
166 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Regan-lin 2013-11-04
  • 打赏
  • 举报
回复
你看字面意思就知道了,如果你lock的一个进程那其他的进程不访问这个lock的进程它会等待么?
bdmh 2013-11-04
  • 打赏
  • 举报
回复
要看lock的对象,要求lock的对象是全局的object,那样可以阻止其他线程,如果只是lock自己内部的一个变量,甚至lock(this),那对于另I个new出来的实力,lock是不起作用的

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧