A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 悟中生有 中级黑马   /  2013-12-13 15:36  /  1256 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 悟中生有 于 2013-12-13 15:58 编辑

在多线程里面,多线程的同步和死锁是不是对立的?
多线程同步的前提是:
1,同步需要两个或者两个以上的线程。
2,多个线程使用的是同一个锁。
未满足这两个条件,不能称其为同步。

死锁是多线程在使用两个锁的时候造成的。

不知道我这样理解是不是对的,求解?望高手指教!!!

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

5 个回复

倒序浏览
我个人的理解是:仅供参考啊:同步,,就是多线程访问同一个资源,存在安全问题,,就必须加同步就是上锁嘛,一次只能有一个线程访问一个资源,这个线程访问完出来后,别的线程才有资格去访问,不然线程的切换 会造成安全隐患。。。
死锁,,是发生在同步的基础上的,就是说 有两个以上资源,分别加了同步,然后多个线程分别访问不同资源的时候 由于每个锁里面是相互有联系的,,这几个线程就在里面 不能访问资源,就阻塞在里面了,,说的通俗点 就是占着茅坑不拉屎,,,然后外面排队的人进不去,,里面的人也出不来,,那么程序就卡在那里了,,不人为干涉,,程序不就结束的

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报

多线程同步的前提是:
1,同步需要两个或者两个以上的线程。
2,多个线程使用的是同一个锁。
必须保证同步中只能有一个线程在运行。
死锁:同步嵌套同步
死锁产生的条件
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
丑男先生。 发表于 2013-12-13 15:50
我个人的理解是:仅供参考啊:同步,,就是多线程访问同一个资源,存在安全问题,,就必须加同步就是上锁嘛 ...

谢谢!明白了。
回复 使用道具 举报
汪伟楠 发表于 2013-12-13 15:51
多线程同步的前提是:
1,同步需要两个或者两个以上的线程。
2,多个线程使用的是同一个锁。

谢谢!看明白了。
回复 使用道具 举报

没事的,共同学习 啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马