黑马程序员技术交流社区

标题: .线程同步的方法,我不是很明白,希望高手指点 [打印本页]

作者: 秦驰    时间: 2011-7-14 13:09
标题: .线程同步的方法,我不是很明白,希望高手指点
线程的同步,讲解生产者与消费者的
作者: laladin    时间: 2011-7-14 14:17
例:
    资源:单间小厕所
    你是一个线程,我也是一个线程,虽然我们做的事不一样,你是洗厕所的,我是上厕所的。
    现在我先进去上厕所了,那你肯定不能进来吧。
    后来你又进去洗厕所了,那我也不想进去呗。
    注意,以前厕所门上没有提示,你在里面时我不知道,我在里面时你不知道,大家又不讲规距,动不动就都进去了。然后不是吵架就是打架,不和谐。
    后来,门上装了个灯(synchronized),有人的话,灯就亮,所以自从有了这个灯后,在有人的时候,外面的人就等待。

    而教学视频里的,不过是多了就要求,就是我上一次,你就得洗一次。
    无非就是要求:1。你没洗,我想上也不让上。2。不允许你连续洗两次,让我少上了一次。(有点歧义,别想歪了)

----------------------------以上例子,开个玩笑,别认真哈-----------------------------------------
[ 本帖最后由 laladin 于 2011-07-14  14:31 编辑 ]
作者: 匿名    时间: 2011-7-14 14:22
问得泛,回答更泛
作者: 匿名    时间: 2011-7-14 14:43
标题: 回复 3 # 的帖子
呵呵,刚写了一句话,换行时,不小心按下ctrl+enter发出了回复,才会有此一论,嘎嘎~!~~
作者: 匿名    时间: 2011-7-17 05:07
标题: 回复 2 # 的帖子
学会了马士兵讲课。。。
作者: 匿名    时间: 2011-7-28 10:43
标题: 回复 楼主 的帖子
线程的同步,可以用同步代码块,也可用同步函数。
在生产者消费者的例子中 使用的是同步函数。在调用函数时 就会查看对象的锁旗标,这里的对象是this,
如果锁旗标为1,就是没有被占用,执行函数,并改变锁旗标为0,直到执行完释放锁旗标。
laladin举得例子真是形象:L




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