【重学java】多线程基础(生产者消费者)
2023-05-28
17 浏览
public class desk {
//定义一个标记
//true 就表示桌子上有汉堡包的,此时允许吃货执行
//false 就表示桌子上没有汉堡包的,此时允许厨师执行
public static boolean flag = false;
//汉堡包的总数量
public static int count = 10;
//锁对象
public static final object lock = new object();
}
public class cooker extends thread {
// 生产者步骤:
// 1,判断桌子上是否有汉堡包
// 如果有就等待,如果没有才生产。
// 2,把汉堡包放在桌子上。
// 3,叫醒等待的消费者开吃。
@override
public void run() {
while(true){
synchronized (desk.lock){
if(desk.count == 0){
break;
}else{
if(!desk.flag){
//生产
system.out.println("厨师正在生产汉堡包");
desk.flag = true;
desk.lock.notifyall();
}else{
try {
desk.lock.wait();
} catch (interruptedexception e) {
请后发表内容