黑马程序员技术交流社区

标题: 多线程 [打印本页]

作者: 薛波    时间: 2012-3-17 08:15
标题: 多线程
如何处理多线程中的读锁与写销来防止死销的问题?
作者: 冯林    时间: 2012-3-17 12:41
本帖最后由 冯林 于 2012-3-17 12:42 编辑

死锁是指多个线程因竞争资源而造成的一种僵局,若无外力作用这些线程都将永远不可能向前推进。
产生死锁的原因主要是:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个线程使用。
(2) 请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系。
{:soso_e100:}
作者: 李飞    时间: 2012-3-17 12:55
你说的有两个方面:
1.当使用了同步机制发生死锁,这个时候发生死锁的原因就是出现同步嵌套

2.就是自己加个锁,这个通过双重判断
作者: a504079589    时间: 2012-3-17 13:05
死锁是 因为多线程访问共享资源, 由于访问的顺序不当所造成的, 通常是一个线程锁定了一个资源A, 而又想去锁定资源B;
在另一个线程中, 锁定了资源B, 而又想去锁定资源A以完成自身的操作;
这样两个线程都想得到对方的资源, 而不愿释放自己的资源, 造成两个线程都在等待, 而无法执行的情况。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2