社区
C#
帖子详情
Monitor问题
xiaohu9711
2009-12-29 09:21:28
为什么我在线程中使用Monitor。exit()时出错。假设f为主线程中定义的类型。
Monitor.Enter(f);
this.f++;
Monitor.Exit(f);
...全文
112
5
打赏
收藏
Monitor问题
为什么我在线程中使用Monitor。exit()时出错。假设f为主线程中定义的类型。 Monitor.Enter(f); this.f++; Monitor.Exit(f);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jiacker
2009-12-29
打赏
举报
回复
看样子f是值类型的,请看MSDN关于Monitor的备注:
使用 Enter 获取作为参数传递的对象上的 Monitor。如果其他线程已对该对象执行了 Enter,但尚未执行对应的 Exit,则当前线程将阻止,直到对方线程释放该对象。同一线程在不阻止的情况下多次调用 Enter 是合法的;但在该对象上等待的其他线程取消阻止之前必须调用相同数目的 Exit。
使用 Monitor 锁定对象(即引用类型)而不是值类型。将值类型变量传递给 Enter 时,它被装箱为对象。如果再次将相同的变量传递给 Enter,则它被装箱为一个单独对象,而且线程不会阻止。Monitor 本应保护的代码未受保护。此外,将变量传递给 Exit 时,也创建了另一个单独对象。因为传递给 Exit 的对象和传递给 Enter 的对象不同,Monitor 将引发 SynchronizationLockException。有关详细信息,请参见概念主题 监视器
。
Interrupt 可以中断正等待进入对象的 Monitor 的线程。将引发 ThreadInterruptedException。
使用 C# try…finally 块(在 Visual Basic 中为 Try…Finally)来确保释放监视器,或使用以 try…finally 块包装 Exit 方法的 C# lock 语句(在 Visual Basic 中为 SyncLock)。
xiaohu9711
2009-12-29
打赏
举报
回复
错误:从不同步的代码块中调用了对象同步方法。
如果不用monitor那我用什么来确保共享变量的互斥呢?
xiaohu9711
2009-12-29
打赏
举报
回复
不是完整版?那怎么可以使用enter呢?
bright3345
2009-12-29
打赏
举报
回复
是不是该你使用的软件不是完整版,没有包括这个函数,或者是程序定义的问题,有重复构造?
xiaohu9711
2009-12-29
打赏
举报
回复
:(
【最简单】解决Andriod Studio3.X因JAVA
问题
无法启动Device
Monitor
问题
在SDK\tools\lib\
monitor
-x86_64目录下,有个monitro.exe。懒得重装,忽然看到Project Structure中studio自己用的JDK路径,网上一顿搜,基本定位是所用JAVA版本太高,让建议重装JDK1.8。那就简单多了,修改系统环境...
找不到Android Device
Monitor
问题
问题
: 读郭神的《第一行代码》第二版的时候,发现那Android Device
Monitor
它木有。 解决办法:跑去官网瞄了一眼,新版本早就木有这个了,所以要查看文件得从View——Tool Windows——Device File Explore进去,喏...
【CDP】Cloudera Manager 记录一次 Service
Monitor
内存溢出/使用率高的
问题
及通用排查方案
通过了解 Servcie
Monitor
具体的监控指标项,以及每个监控指标项对应的监控 Entity 的数量,来判断是那个监控指标项引起的Service
monitor
内存使用率过高。开始的时候,没有过多考虑,只是增加了 JVM 的堆内存大小...
CM定期报"查询 Service
Monitor
时发生内部错误"解决办法
本机通过CM搭建CDH成功后,web界面经常报"查询 Service
Monitor
时发生内部错误"无法正常显示 ...出现此
问题
,应该是Cloudera Management Service的内存不足所致,Service
Monitor
和 Host
Monitor
服务JVM内存配
Redis 使用
monitor
造成的内存飙升
客户端的hash(key)有
问题
,造成分配不均。(redis使用的是crc16, 不会出现这么不均的情况) 存在个别大的key-value: 例如一个包含了几百万数据set数据结构(这个有可能) 主从复制出现了
问题
。 其他原因 三.
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章