黑马程序员技术交流社区

标题: 关于多线程同步函数的问题求解答 [打印本页]

作者: 12300123    时间: 2015-4-6 13:55
标题: 关于多线程同步函数的问题求解答
根据视频里老师的讲课内容,自己防着老师的代码自己写了一下车站售票小程序,为解决安全问题设置了同步函数show,但是为什么运行的时候按单线程运行呢,只有Thread-0线程运行,可是我的代码和老师讲的一样啊,有大神帮忙解决吗?代码见图片和附件,谢谢了。

售票.jpg (124.65 KB, 下载次数: 9)

售票.jpg

售票.jpg (124.65 KB, 下载次数: 9)

售票.jpg

作者: fantacyleo    时间: 2015-4-6 14:21
代码目测没问题。试一下把sleep语句拿出来,放到run方法中的show();之前
作者: shw16888    时间: 2015-4-6 14:30
来学习学习!!!
作者: 12300123    时间: 2015-4-6 14:55
fantacyleo 发表于 2015-4-6 14:21
代码目测没问题。试一下把sleep语句拿出来,放到run方法中的show();之前

把sleep注释掉都不行,只要Thread-0自己在运行,郁闷。
作者: chenlong    时间: 2015-4-6 14:55
哈偶牛B

作者: fantacyleo    时间: 2015-4-6 15:07
12300123 发表于 2015-4-6 14:55
把sleep注释掉都不行,只要Thread-0自己在运行,郁闷。

没让你光注释掉啊。让你把sleep放到show();前面或者后面
作者: 12300123    时间: 2015-4-6 15:18
fantacyleo 发表于 2015-4-6 15:07
没让你光注释掉啊。让你把sleep放到show();前面或者后面

放到show函数外面sleep就没有什么意义了啊
作者: fantacyleo    时间: 2015-4-6 15:24
12300123 发表于 2015-4-6 15:18
放到show函数外面sleep就没有什么意义了啊

你放到show()内部才没意义。sleep并不放弃锁,你sleep多久其他线程也进不了同步方法,纯粹拖延时间而已。




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