Java怎么创建两个线程模拟对话
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,本篇内容主要讲解"Java怎么创建两个线程模拟对话",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java怎么创建两个线程模拟对话"吧!代码内容消费者,负责
千家信息网最后更新 2025年11月15日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安全错误
数据库的锁怎样保障安全
公安部机关网络安全
办公室一般都用什么服务器
数据库的建立与维护实验目的
曙光服务器自动化
天津hp服务器虚拟化部署云空间
上海万粒网络技术有限公司
安卓软件开发是免费的么
山西网络安全邓莹敏
公司数据库意义是什么
安庆崇铭网络技术有限公司
四川工控软件开发收费报价表
观看网络安全微视频
数据库查锁
公司数据存储服务器收费
服务器功能及其主要技术要求
惠普服务器一般多少克
虚拟机网络安全教程
网络安全法第23条
灵寿高科技软件开发
基因型和基因表达量关联数据库
调用接口json存入数据库
巩义市通美网络技术服务有限责任公司起诉
网络安全大佬的网站
网络安全性对电子支付的影响
数学视频软件开发
北京运维服务软件开发价位
开源媒体服务器
同城货的抢单软件开发
中卫网络技术推荐厂家
第五届网络安全活动