Java怎么创建两个线程模拟对话
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"Java怎么创建两个线程模拟对话",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java怎么创建两个线程模拟对话"吧!代码内容消费者,负责
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
科技互联网企业
云信互联网科技有限公司
互联网科技财经
互联网科技会
互联网科技公司发展
华宇互联网科技
奇酷互联网络科技
迪茉互联网科技
互联网金融科技平台
火传媒上海互联网科技
互联网金融和金融科技
互联网科技股有哪些
甘肃拓世互联网科技有限公司
山东吉时兔互联网科技有限公司
上海宁丞科技互联网
世界互联网科技公司市值排名
南平创想时代互联网科技有限公司
玉溪互联网科技怎么选
互联网科技平台产品运营
广州全民伙伴互联网科技有限公司
互联网科技网
科技互联网政务服务
金诺互联网科技
杭州互联网科技公司
深圳期待互联网科技
成都互联网科技公司100强
互联网经济与金融科技
中国互联网有什么科技
广州梦谷互联网科技有限公司领导
好易买互联网科技