双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

新手求解多线程信号灯同步的问题,求大神解决

鱼秋刀 鱼秋刀 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
package CoTest;

/**
* 信号灯
* 借助标志位
* @author yuche
*
*/

public class CoTest2 {
public static void main(String[] args) {
Bread1 bread=new Bread1();
new Producer1(bread).start();
new Consumer1(bread).start();

}

}

class Consumer1 extends Thread{
Bread1 bread;

public Consumer1(Bread1 bread) {
super();
this.bread = bread;
}

@Override
public void run() {
for(int i=1;i<100;++i) {
consume();
}
}

public synchronized void consume(){
if(bread.flag) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("消费");
bread.flag=!bread.flag;
this.notifyAll();
}

}

class Producer1 extends Thread{
Bread1 bread;

public Producer1(Bread1 bread) {
super();
this.bread = bread;
}

@Override
public void run() {
for(int i=1;i<100;++i) {
produce();
}
}

public synchronized void produce(){
if(!bread.flag) {
try {
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("生产");
bread.flag=!bread.flag;
this.notifyAll();
}
}

//资源
class Bread1{
//为T表示面包在生产,为F表示可以消费了
boolean flag;
public Bread1() {
flag=true;
}
}


资源为Bread1,run里面有循环,编译运行就出一次结果,后面的就不运行了

...全文

相关推荐

java 多线程交通信号灯模拟过程详解

主要介绍了java 多线程交通信号灯模拟过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

weixin_38588394

探索互斥协议与死锁问题的解决方案

本文深入探讨了在计算机科学中互斥协议中的死锁问题,以及解决这些问题的方法。通过分析和比较不同的算法,我们了解了如何避免死锁,以及在出现死锁时如何通过重启等机制来解决。文章还涉及了有界模型检查在解决互斥问题中的应用,以及如何通过不变量和SAT求解器来优化问题解决过程。

坑货两只

红绿灯背后的数学:如何用Java算出“黄金绿灯时间“?

本文探讨了城市交通信号灯配时优化的数学原理与Java实现方法。文章首先分析了信号灯配时不合理导致的交通问题,指出精确计算绿灯时长的重要性。核心内容包括:1)基于M/M/1排队模型建立车流量数学模型,通过优化算法最小化总等待时间;2)使用Java实现信号灯优化控制器,采用梯度下降法动态调整绿灯时长。文中提供了完整的Java代码实现,包括信号灯控制器基类和优化控制器类,采用原子类保证线程安全,并详细解释了关键算法原理和实现细节。该方案可为城市智能交通系统提供理论支持和技术实现参考。

墨夶

解决 错误 0x80070079: 信号灯超时时间已到 问题

向移动设备复制文件遇到“错误 0x80070079: 信号灯超时时间已到”问题时可以尝试这个解决方案,详情参考 http://support.microsoft.com/kb/976972 压缩包包括32位和64位两个版本,适合Windows 7。

池龙

CenaFilosofos:使用交通信号灯解决哲学家的晚餐问题

晚餐哲学家 使用交通信号灯实施哲学家的晚餐问题。

龙猫美术的世界
评论 4
收藏 已收藏
分享
返回顶部
鱼秋刀
Java SE 62,621 成员 307,251 内容