博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程实例-生产和取出
阅读量:5953 次
发布时间:2019-06-19

本文共 1113 字,大约阅读时间需要 3 分钟。

hot3.png

class Info {	private String name = "张三";	private String desc = "一个普通的人";	private boolean flag = false ;	/*	 * false:表示不允许生产,但是允许取走内容	 * true:表示允许生产,但是不允许取走	 * */	public synchronized void set(String name,String desc){		if(!flag){	// 不能生产,要等待			try {				super.wait() ;			} catch (InterruptedException e) {				e.printStackTrace();			}		}		this.setName(name) ;		try {			Thread.sleep(300);		} catch (InterruptedException e) {			e.printStackTrace();		}		this.setDesc(desc) ;		this.flag = false ;	// 不能生产了		super.notify() ;	// 唤醒其他等待的线程	}	public synchronized void get(){		if(flag){	// 不能取走,要等待			try {				super.wait() ;			} catch (InterruptedException e) {				e.printStackTrace();			}		}		try {			Thread.sleep(300);		} catch (InterruptedException e) {			e.printStackTrace();		}		System.out.println(this.name + " --> " + this.desc) ;		this.flag = true ;		super.notify() ;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public String getDesc() {		return desc;	}	public void setDesc(String desc) {		this.desc = desc;	}}

转载于:https://my.oschina.net/toblackmagic/blog/49286

你可能感兴趣的文章
Eclipse Java @Override 报错
查看>>
知道双字节码, 如何获取汉字 - 回复 "pinezhou" 的问题
查看>>
linux中cacti和nagios整合
查看>>
Parallels Desktop12推出 新增Parallels Toolbox
查看>>
Python高效编程技巧
查看>>
Kafka服务端脚本详解(1)一topics
查看>>
js中var self=this的解释
查看>>
js--字符串reverse
查看>>
面试题
查看>>
Facebook 接入之获取各个配置参数
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
事情的两面性
查看>>
只要会营销,shi都能卖出去?
查看>>
sed单行处理命令奇偶行输出
查看>>
走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能
查看>>
VC++深入详解学习笔记1
查看>>
安装配置discuz
查看>>
CentOS7 64位小型操作系统的安装
查看>>
线程互互斥锁
查看>>
KVM虚拟机&openVSwitch杂记(1)
查看>>