package src.ThreadH.exercise;
/**
* @author Vince
* @create 2024-07-05-09:30
* <p>
* 案例2:生产者&消费者
* 生产者(Productor)将产品交给店员(Clerk),而消费者(customer)从店员处取走产品,店员一次只能持有
* 固定数量的产品(比如:20),如果生产者试图生产更多的产品,店员会叫生产者停一下,如果店中有空位放产品
* 了再通知生产者继续生产,如果店中没有产品了,店员会告诉消费者等一下,如果店中有产品了再通知消费者来
* 取走产品。
* <p>
* 共享数据:产品
* 线程:生产者 消费者
*/
public class Test3 {
public static void main(String[] args) {
Clerk clerk = new Clerk();
Productor productor = new Productor(clerk);
Customer_ customer_ = new Customer_(clerk);
Customer_ customer_1 = new Customer_(clerk);
Thread t = new Thread(productor);
t.start();
customer_.start();
customer_1.start();
}
}
class Clerk extends Thread {
public int getProduct() {
return product;
}
public void setProduct(int product) {
this.product = product;
}
private int product;
synchronized void addProduct() {
java 多线程案例 生产者&消费者
于 2024-07-05 13:59:29 首次发布