社区
C#
帖子详情
关于多线程操作同一对象出现死锁的问题
ziqing
2007-03-15 01:36:23
我要同时运行多个线程,在线程中调用好多类,在这些类中都要对同一对象进行操作。怎么处理能最大限度的避免死锁情况。
...全文
779
28
打赏
收藏
关于多线程操作同一对象出现死锁的问题
我要同时运行多个线程,在线程中调用好多类,在这些类中都要对同一对象进行操作。怎么处理能最大限度的避免死锁情况。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
honkerhero
2007-03-16
打赏
举报
回复
lock不能锁方法,它锁的是属性
用mutex,但他的范围一定要小,在马上要操作的时候再锁,用完马上解开
快乐小Y
2007-03-16
打赏
举报
回复
唉,LZ的心情我明白
用这个
lock(this)
{}
或者用Semaphores试试
foyuan
2007-03-16
打赏
举报
回复
lock(this)
{}
ziqing
2007-03-16
打赏
举报
回复
顶!
haiwangstar
2007-03-16
打赏
举报
回复
首先要搞清楚概念,到底什么是死锁! 死锁指的不是多个线程同时操作某个资源,而造成获取了错误数据的结果,而是因为几个线程因为资源争夺,谁也无法得到必要的资源,结果互相等待,谁也运行不了。
lock,Monitor 等等都是线程同步用的,这些不是用来避免死锁的,而恰恰是因为运用了这些才造成了产生死锁的可能,如果你完全不用这些线程同步的对象,那才是绝对不会产生死锁的。在多线程编程中,使用了lock,monitor等等。。如果没有非常认真的想清楚程序逻辑,或锁正某个对象时间过长,都极可能造成死锁。
关于死锁的一个经典问题是哲学家就餐问题,楼主可以参考一下。至于楼主所说的问题,则一定要知道你的具体情况是什么,才能知道怎么样去解决。。。
jc8futao
2007-03-16
打赏
举报
回复
楼主应该去看看操作系统概论的书,上面有几种模型——读者,写者模型、生产者,消费者模型。还有好多算法,如银行家算法。可以考虑自己实现算法
jc8futao
2007-03-16
打赏
举报
回复
你的类只是向操作系统提出画图的要求,绘图的过程操作系统会自己完成的。
frland
2007-03-15
打赏
举报
回复
要用多线程,就应该好好研究MSDN里提供的东西,你找不到更合用的了
li45214521
2007-03-15
打赏
举报
回复
mutex 可以限制只是一个线程访问
bool bCreatedNew;
//Create a new mutex using specific mutex name
Mutex m =new Mutex( false, "myUniqueName", out bCreatedNew );
if( bCreatedNew )
Application.Run(new yourFormName());
li45214521
2007-03-15
打赏
举报
回复
System.Object lockThis = new System.Object();
lock(lockThis)
{
// Access thread-sensitive resources.
}
.................................................
灰太狼
2007-03-15
打赏
举报
回复
在同一时刻只许一个线程操作这个类
灰太狼
2007-03-15
打赏
举报
回复
在两个线程的开始处用mutex来锁定。
ziqing
2007-03-15
打赏
举报
回复
顶!
ziqing
2007-03-15
打赏
举报
回复
lock后面的东西不是锁的目标,它只是个标志量
=============================================
有这种情况,同时有两个线程,分别调用两个类的方法进行修改同一对象,怎样加锁!!
lr21shiji
2007-03-15
打赏
举报
回复
lock
sunrobust
2007-03-15
打赏
举报
回复
lock后面的东西不是锁的目标,它只是个标志量.
ziqing
2007-03-15
打赏
举报
回复
谢谢楼上的,
灰太狼
2007-03-15
打赏
举报
回复
參看
http://blog.csdn.net/tjvictor/archive/2007/01/20/1488290.aspx
有沒有幫助
ziqing
2007-03-15
打赏
举报
回复
现在是这种情况,我要用多线程在一个画布上画图形,有画圆的类,有画线的类,
还有画三角的类,每一个类里面要对往画布上绘制图形。怎么对每个类的绘制代码块进行加锁!
ziqing
2007-03-15
打赏
举报
回复
viena(维也纳nn)
是的,在多个类中都要对同一个对象进行引用,操作,
加载更多回复(8)
JAVA
多线程
精讲下
本课程是《零基础学Java》系列课程中的"
多线程
"相关课程.授课形式延续了之前课程的授课风格。内容细腻、详尽,由浅入深!通过本门课程的学习你可以深刻理解Java
多线程
的原理及实现运行机制,深刻学习
多线程
的生命...
Java面试必问:
死锁
(
多线程
死锁
+数据库
死锁
)
多线程
锁定
同一
资源会造成
死锁
线程池中的任务使用当前线程池也可能
出现
死锁
参考连接: https://blog.csdn.net/qq_35064774/article/details/51793656 情况一:
死锁
是两个或多个线程互相等待对方所有用的资源...
线程同步,多个线程
操作
同一
个资源;关键词:synchronized、
死锁
、Lock
处理
多线程
问题
时,多个线程访问
同一
个
对象
,又可能会出错,所以我们需要让这些线程排对等候,一个一个访问这些
对象
。线程同步就是一种等待机制,多个需要访问这个
对象
的线程进入这个
对象
的等待池 形成队列,等前面...
mysql
多线程
死锁
_mysql中
死锁
的
出现
以及解决情况
要解决的
问题
多用户环境下保证数据库完整性和一致性锁是什么在计算机科学中,锁是在执行
多线程
时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。加锁是实现数据库并发控制的一个非常重要...
qt
多线程
访问
同一
变量_何时用
多线程
?
多线程
需要加锁吗?线程数多少最合理?
不知道大家有没有想过这个
问题
,就是什么时候我该使用
多线程
呢?使用
多线程
就一定会提升系统性能吗?1、其实是否应该使用
多线程
在很大程度上取决于应用程序的类型。计算密集型(如纯数学运算) 的, 并受CPU 功能的...
C#
110,539
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章