免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 埋头苦编
打印 上一主题 下一主题

请高手解释下程序运行过程:多线程加锁阻塞问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-11-23 14:59 |只看该作者
回复 1# 埋头苦编
你这个例子,只要第一个输出的字符是'a',后面的字符不管以什么顺序输出,都是合理的。因为,程序的实现是:6个线程分别不断的输出 'a', 'b', 'c', 'd', 'e', 'f'。那么逻辑上,肯定是第一个线程先获得锁,输出了第一个'a',其它后面的线程的执行顺序是不确定的。

论坛徽章:
0
12 [报告]
发表于 2011-11-23 14:59 |只看该作者
回复 1# 埋头苦编

你这个例子,只要第一个输出的字符是'a',后面的字符不管以什么顺序输出,都是合理的。因为,程序的实现是:6个线程分别不断的输出 'a', 'b', 'c', 'd', 'e', 'f'。那么逻辑上,肯定是第一个线程先获得锁,输出了第一个'a',其它后面的线程的执行顺序是不确定的。

论坛徽章:
0
13 [报告]
发表于 2011-11-23 15:00 |只看该作者
回复 1# 埋头苦编

你这个例子,只要第一个输出的字符是'a',后面的字符不管以什么顺序输出,都是合理的。因为,程序的实现是:6个线程分别不断的输出 'a', 'b', 'c', 'd', 'e', 'f'。那么逻辑上,肯定是第一个线程先获得锁,输出了第一个'a',其它后面的线程的执行顺序是不确定的。

论坛徽章:
0
14 [报告]
发表于 2011-11-23 15:02 |只看该作者
回复 1# 埋头苦编


你这个例子,只要第一个输出的字符是'a',后面的字符不管以什么顺序输出,都是合理的。因为,程序的实现是:6个线程分别不断的输出 'a', 'b', 'c', 'd', 'e', 'f'。那么逻辑上,肯定是第一个线程先获得锁,输出了第一个'a',其它后面的线程的执行顺序是不确定的。

论坛徽章:
0
15 [报告]
发表于 2011-11-23 15:07 |只看该作者
刚才CU的数据库好像 “卡住了”,只能读,不能写!难道在做数据库备份?

论坛徽章:
0
16 [报告]
发表于 2011-11-23 15:15 |只看该作者
回复 8# 1514_louluo

解锁的时候限定了顺序,至少应该有序,不一定是abcdef

论坛徽章:
0
17 [报告]
发表于 2011-11-23 15:17 |只看该作者
回复 13# digdeep126
第一个输出后,解锁时限定的线程顺序不管用???

论坛徽章:
0
18 [报告]
发表于 2011-11-23 15:28 |只看该作者
回复 16# 埋头苦编


    兄弟,你还是认为abc,先要锁a放b,然后b才能够锁b放c,其实不是的,为什么不可以是锁a放b的这个时候,b已经锁上了,a放b的时候恰好解开了b的锁?你再自己想象一下~

论坛徽章:
0
19 [报告]
发表于 2011-11-23 15:30 |只看该作者
回复 16# 埋头苦编
兄弟,你还是认为abc,先要锁a放b,然后b才能够锁b放c,其实不是的,为什么不可以是锁a放b的这个时候,b已经锁上了,a放b的时候恰好解开了b的锁?你再自己想象一下~

论坛徽章:
0
20 [报告]
发表于 2011-11-23 15:32 |只看该作者
回复 16# 埋头苦编


    兄弟,你还是认为abc,先要锁a放b,然后b才能够锁b放c,其实不是的,为什么不可以是锁a放b的这个时候,b已经锁上了,a放b的时候恰好解开了b的锁?你再自己想象一下~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP