Java怎么创建两个线程模拟对话
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇内容主要讲解"Java怎么创建两个线程模拟对话",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java怎么创建两个线程模拟对话"吧!代码内容消费者,负责
千家信息网最后更新 2025年01月18日Java怎么创建两个线程模拟对话
本篇内容主要讲解"Java怎么创建两个线程模拟对话",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java怎么创建两个线程模拟对话"吧!
代码内容
消费者,负责取走生产者产生的信息
/** * @auther::9527 * @Description: 消费者 * @program: 多线程 * @create: 2019-08-10 10:45 */public class Consumer extends Thread{ private MiddleMan mid = null; public Consumer() { } public Consumer(MiddleMan movie) { this.mid = movie; } @Override public void run() { //循环显示50次电影信息 for (int i = 0; i <1000 ; i++) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } this.mid.get(); } }}
生产者,负责生产信息
/** * @auther::9527 * @Description: * @program: 多线程 * @create: 2019-08-10 10:39 */public class Producer implements Runnable{ //生产数据 private MiddleMan mid = null; private boolean flag = false; public Producer(MiddleMan movie) { this.mid = movie; } public Producer() { } @Override public void run() { //循环录入,两部电影交替录人 for (int i = 0; i <1000; i++) { if (flag){ this.mid.set("jack说:","我是查水表"); flag = false; } else { this.mid.set("rose说:","你是谁啊?"); flag = true; } } }}
信息中转场地 负责控制生产和消费的节奏
package com.duo;/** * @auther::9527 * @Description: 生产者和消费者 * @program: 多线程 * @create: 2019-08-10 10:36 */public class MiddleMan { private String name; private String info; private boolean flag = true; //设置标志位,控制生产者生产,消费者消费 public String getName() { return name; } public String getInfo() { return info; } public MiddleMan(String name, String info) { this.name = name; this.info = info; } public MiddleMan() { } public synchronized void set(String name,String info){ if (!flag){ try { super.wait(); //当前线程等待 } catch (InterruptedException e) { e.printStackTrace(); } } this.name = name; try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } this.info = info; flag = false; //重置标志位,让消费者消费 super.notify(); //使用Object的notify方法,让消费者线程被唤醒 } public synchronized void get(){ if (flag){ try { super.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println(this.getName()+"-"+this.getInfo()); flag = true; super.notify(); //唤醒线程 }}
程序入口
/** * @auther::9527 * @Description: 测试类 * @program: 多线程 * @create: 2019-08-10 11:47 */public class Test { public static void main(String[] args) { //生产===>>拿走 生产出来就被拿走 MiddleMan mid = new MiddleMan(); Thread producer = new Thread(new Producer(mid)); Thread consumer = new Thread(new Consumer(mid)); producer.start(); consumer.start(); }}
到此,相信大家对"Java怎么创建两个线程模拟对话"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
线程
生产
消费
消费者
信息
生产者
两个
对话
内容
方法
标志
电影
学习
循环
控制
实用
更深
代码
入口
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
浙江网络技术转让优点
软件开发经理岗位说明书
电商软件开发架构
霸气网络安全黑板报
网络安全服务5项
软件开发模型敏捷生存期
校园网用什么思科服务器最好
华硕软件开发工资
山东鑫众软件开发
现在王者荣耀服务器几点关闭
计算机与网络技术是做什么的
我国发网络安全技术
北京工业网络安全有限公司
jsp web服务器
万古网络安全吗
小学生网络安全分析
软件开发和设备技术员区别
智掌云网络技术有限公司
网络安全措施评估需求合法性
查看服务器品牌命令
微信服务器防护
软件开发工具填空题
腾根网络技术有限公司
连上网络显示无法连接服务器
辽宁哪里有服务器云主机
软件开发考证是哪个部门
寻甸上门软件开发价格实惠
河南快道网络技术有限公司
安徽工业软件开发代理价钱
网络技术与网络营销的关系