/* 多线程经典问题
* 题目:生产者和消费者问题, 类似的火车站卖票问题
* 作者:王小康
* 时间:2013/5/31
*
* 总结:在多线程中往往会遇到死锁的问题,利用互斥锁可以解决该问题,当然还有别的锁。
* sleep()方法在Thread类里,锁定时别的线程不可以访问锁定对象;
* wait()方法在Object类里,锁定时别的线程可以访问锁定对象。 同时wait()方法与notify()是一对的,
* 后者唤醒某一个正在等待的线程。
*/
public class ProducerConsumer {
public static void main(String[] args) {
Basket bask = new Basket();
Producer p = new Producer(bask);
Consumer c = new Consumer(bask);
new Thread(p).start();
new Thread(c).start();
}
}
class Bread { //面包类
int id;
Bread(int id) {
this.id = id;
}
public String toString() {
return String.valueOf(id);
}
}
class Basket { //篮筐类
int index = 0;
Bread[] bread = new Bread[6];
public synchronized void Push(Bread b) {
while(index == bread.length) {
try {
this.wait();
} catch(InterruptedException e) {
e.getStackTrace(
JAVA训练2——生产者消费者问题
最新推荐文章于 2024-10-11 17:30:36 发布
本文深入探讨Java中的生产者消费者问题,通过多线程实现并发控制,详细解析同步机制的应用,助你理解并发编程核心概念。
摘要由CSDN通过智能技术生成