ixiangfeng 发表于 2014-1-11 15:26
你说的情况是if来判断flag才会发生的 但是你这里用while来判断的话就不会出现,一旦线程被唤醒后就会继续进 ...
潜伏 发表于 2014-1-12 00:54
我知道是while啊,我说的就死while。你看我问的:我想问这地方如果消费者的两个线程都在wait()的话,生 ...
75100313 发表于 2014-1-12 08:30
synchronized 你这个关键字是用来干啥的? 怎么能两个消费者同时执行呢
明显是一个进去执行完方法里面所有 ...
ixiangfeng 发表于 2014-1-12 12:17
CPU不可能同时运行两个线程的,两个消费者的线程都被唤醒了就是说他们两个线程都有执行资格,但不一定有 ...
潜伏 发表于 2014-1-13 00:31
当然连个消费者都会判断标记,不过如果一个消费线程判断满足后,执行while后面的代码,而没有执行到打印 ...
75100313 发表于 2014-1-12 08:30
synchronized 你这个关键字是用来干啥的? 怎么能两个消费者同时执行呢
明显是一个进去执行完方法里面所有 ...
ixiangfeng 发表于 2014-1-13 11:30
wait方法会释放锁的,而这里synchronized方法里面也没有同时两个线程在执行,因为一个线程进去遇到wait方 ...
75100313 发表于 2014-1-14 08:28
关键就是那个while()!
ixiangfeng 发表于 2014-1-14 10:09
线程进去同步函数里面 如果等待了 然后被唤醒了,它就会重新判断while循环的条件,你看一下我上面的解释 ...
75100313 发表于 2014-1-14 10:45
老大 我有点晕了 那为什么前面要加synchronized 这个啊 不是释放锁?
还不如不加这个 我晕了 这个问题 ...
ixiangfeng 发表于 2014-1-14 11:13
加了synchronized在这个函数上是同步函数,简单地说同步函数的作用是加锁,使得两条线程同时执行函数里面 ...
75100313 发表于 2014-1-14 11:19
两个线程 都wait() 等待,都在synchronized形容的函数的方法体内 现在不是就相当于都在执行了? ...
ixiangfeng 发表于 2014-1-14 11:28
synchronized实现多个线程不能同时操作里面的代码是用监视器或者说是锁,一个线程进去了就会把锁给锁上, ...
75100313 发表于 2014-1-14 11:36
假如说生产者 1号和2号 两条线程 都在执行了wait()方法后 在等待 。 对面消费者一看 没有物品了 那么 ...
ixiangfeng 发表于 2014-1-14 17:23
一个synchronized只有一个锁,像你说的1号和2号被唤醒后,两个都具有执行资格,但是最多只能有一个具有执 ...
ixiangfeng 发表于 2014-1-14 17:23
一个synchronized只有一个锁,像你说的1号和2号被唤醒后,两个都具有执行资格,但是最多只能有一个具有执 ...
ixiangfeng 发表于 2014-1-14 17:23
一个synchronized只有一个锁,像你说的1号和2号被唤醒后,两个都具有执行资格,但是最多只能有一个具有执 ...
潜伏 发表于 2014-1-14 23:01
你想表达的是只能有一线程拿到锁。而老毕讲的锁,打了个上火车卫生间的例子。就是说门上显示有人,别的人 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |