Java怎么创建两个线程模拟对话
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容主要讲解"Java怎么创建两个线程模拟对话",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java怎么创建两个线程模拟对话"吧!代码内容消费者,负责
千家信息网最后更新 2025年02月23日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安全错误
数据库的锁怎样保障安全
火车上的python数据库
信息网络安全防线
网络安全从业人员职业发展
java服务器租用
火山软件开发linux
贵州省委网络安全和信息化
唐山弘基软件开发有限公司
英雄联盟官方服务器人数
安卓系统软件开发用什么语言
网站和数据库 安全
阿里云ecs服务器转赠
服务器通信模块
戴尔服务器进安全模式
网络安全培训css
电力系统网络安全到岗到位
数据库技术的高级应用
中山数字软件开发价格
淮南软件开发培训哪里有
h2 内存数据库
东莞市鼎信网络技术有限公司
做菜鸟网络技术员
初级软件开发师北京工资
美的软件开发前景如何
招行网络安全答题
2020年上海游驰网络技术
数据库 医学NC
如何获取数据库的表结构
面对对象软件开发过程的顺序为
数独游戏用哪个软件开发
华为服务器串口的用户名密码