博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程之间的通讯
阅读量:6689 次
发布时间:2019-06-25

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

package com;

/*

* 生产类
*/
public class Producer implements Runnable {
//开始操作数据存储类P
P q = null;
public Producer(P q){
this.q = q;
}

@Override

public void run() {
int i = 0;
while(true){
//编写往数据存储空间放入数据的代码
if( i == 0 ){
q.set("张三", "男");
}else{
q.set("李四", "女");
}
i = (i+1)%2;
}
}

}

 

package com;

/*

* 消费类
*/
public class Consumer implements Runnable {
//开始操作数据存储类P
P q = null;
public Consumer(P q){
this.q = q;
}

@Override

public void run() {
while(true){
//编写往数据存储空间取出数据的代码
while( true ){
q.get();
}
}
}

}

 

package com;

/*

* 数据存储类
*/
public class P {
//数据存储空间
private String name;
private String sex;
boolean bFull = false;//防止没有放入就不断读取或者没有取不断放入
//加入set和get方法进行数据同步以免资源共享产生差异
/*
* wait(),notify(),notifyAll()方法只能在synchronized中调用
*/
public synchronized void set(String name, String sex){
if( bFull ){//正在放入,先等等
try{
wait();//后来的线程要等待
}catch(InterruptedException e){
}
}
this.name = name;
try{
Thread.sleep(10);
}catch(Exception e){
System.out.println(e.getMessage());
}
this.sex = sex;
bFull = true;
notify();//唤醒最先到达的线程
}
public synchronized void get(){
if( !bFull ){//没有取,先等等
try{
wait();//后来的线程要等待
}catch(InterruptedException e){
}
}
System.out.println(this.name + "---->" + this.sex);
bFull = false;
notify();//唤醒最先到达的线程
}
}

 

主类

package com;

public class ThreadCommunication {

/**

* 线程通讯
*/
public static void main(String[] args) {
P q = new P();
new Thread(new Producer(q)).start();
new Thread(new Consumer(q)).start();
}

}

转载地址:http://gahao.baihongyu.com/

你可能感兴趣的文章
正则表达式
查看>>
CentOS6.5固定IP方式上网(NAT)
查看>>
jboss信息安全
查看>>
[DP][二分]JZOJ 3463 军训
查看>>
SQL语言基础
查看>>
跟左神学算法10 经典算法 - 递归与动态规划
查看>>
888. Uncommon Words from Two Sentences
查看>>
查看最新的Google地址
查看>>
数值与字符串的转换
查看>>
正则表达式基础总结
查看>>
oalTouch (OpenAL的一个应用)
查看>>
编译发布版本的时候移除NSLog输出的方法
查看>>
黄聪:VS2017调试时提示“运行时无法计算表达式的值”
查看>>
黄聪:iis7.5 偶尔出现500服务器错误-内部服力器错误
查看>>
爬虫库之BeautifulSoup学习(四)
查看>>
Windows中git使用教程
查看>>
网页音乐制作器(网页钢琴)-- MusicMaker
查看>>
oracle优化:避免全表扫描(高水位线)
查看>>
对超级课程表产品的一些个人小看法
查看>>
词频统计 效能分析
查看>>