大家一起来讨论一下 生产者消费者java多线程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这段程序我觉得根本不能算生产者消费者,虽然有很多地方类似。这段程序与单线程的效果基本没有区别。同一时间只有一个线程在运行。只根据一个boolean型标记确定哪个线程运行,并且严格互斥。 这段程序,是多个线程在排队执行,和单线程没有什么区别。类class Resource是非线程安全的。使用的时候需要控制线程安全,也就是需要加同步锁。你创建的这几个线程不会同时运行。这块代码可以看做测试wait和notifyAll的小demo。嘿嘿! 嗯,生产者消费者的一个要素是产品,有人生产产品,有人消费产品,你这里没有,Resource不是产品,因为它被创建了一个实例后,大家都来操作它,而不是一部分人生产它,一部分人消费它。典型的生产者消费者是要有一个Queue之类的容器的,还要有一个产品,生产者new 产品并把它放进Queue里,消费者到Queue里把产品取出消费掉。在整个过程中,Queue是需要被同步的,而不是产品。因为Queue是状态变化的,每次生产和消费,Queue的状态都是变化的,因此要把Queue锁住再操作。生产者判断Queue没满就继续生产,满了就wait,等待被通知。消费者判断Queue是否为空,如果空,则wait,等待被通知。 为什么不会有多线程安全问题呢?因为synchronized(r)这句话都以r对象为锁,并且,当wait()时,都在r对象的wait set(把他想象成一个休息室)里。最后,这个程序写的很不好。 茅塞顿开 这个解释我喜欢 不能更棒了貌似懂了一点点了,是不是说我对资源的操作,是属于资源的方法,需要定义在资源里,然后赋的值就相当于放在resource里的产品了。而我这里只有一个产品。是这样吗? 救急!!! java人事管理系统,SWING+ORACLE10G+HIBERNATE 类的成员的访问控制问题,费解啊! 帮忙看看啊!如何用接口、抽象类、继承三种方法实现各种几何物体面积的计算 replaceAll问题 java resultset 不为空但是关闭出错 怎样把一个字符串中的\\u变为\u,急? 大家抢分!(请推荐入门级经典书,谢谢!本人有编程基础以前用VB) 加入金山~~~散分了 最新的jdk去那个地方下载呢谁能告诉我 swing面板刷新问题 求大神解决
类class Resource是非线程安全的。使用的时候需要控制线程安全,也就是需要加同步锁。
你创建的这几个线程不会同时运行。这块代码可以看做测试wait和notifyAll的小demo。嘿嘿!
因为synchronized(r)这句话
都以r对象为锁,并且,当wait()时,
都在r对象的wait set(把他想象成一个休息室)里。最后,这个程序写的很不好。
茅塞顿开 这个解释我喜欢 不能更棒了
貌似懂了一点点了,是不是说我对资源的操作,是属于资源的方法,需要定义在资源里,然后赋的值就相当于放在resource里的产品了。而我这里只有一个产品。是这样吗?