Java 学习————线程直接通信
来源:互联网 发布:linux配置java环境 编辑:程序博客网 时间:2024/06/06 05:55
class Water{//水塘类static Object water=new Object();static int total=6; //假设水塘总共可以含水量为6static int mqsl=3; //假设水塘中拥有含水量为3static int ps=0; //假设水塘目前含水量为0}class ThreadA extends Thread{//排水类void pswork(){synchronized(Water.water){System.out.println("水塘中是否没有水: "+isEmpty());if(isEmpty()){try{Water.water.wait();}catch(InterruptedException e){e.printStackTrace();}}else{Water.ps++;System.out.println("水塘目前排水水量 "+Water.ps);}}}public void run(){while(Water.mqsl<Water.total){if(isEmpty())System.out.println("水塘目前没有水,排水线程被挂起");System.out.println("排水工作开始");pswork();try{sleep(1000);}catch(InterruptedException e){e.printStackTrace();}}}public boolean isEmpty(){return Water.mqsl==Water.ps?true:false;}}class ThreadB extends Thread{//进水类void jswork(){synchronized(Water.water){Water.mqsl++;Water.water.notify();System.out.println("水塘目前进水量为 "+Water.mqsl);}}public void run(){while(Water.mqsl<Water.total){System.out.println("进水工作开始");jswork();try{sleep(3000);}catch(InterruptedException e){e.printStackTrace();}}}}public class Tongxin {public static void main(String[] args) {// TODO Auto-generated method stubThreadA threadA=new ThreadA();ThreadB threadB=new ThreadB();threadB.start();threadA.start();}}
0 0
- Java 学习————线程直接通信
- Java——线程通信
- Java线程——线程间通信
- Java 学习笔记——线程间通信(day12)
- Java并发编程学习(三)——线程通信
- (48)Java学习笔记——多线程 / 线程间通信 / 线程组 / 线程池 /
- java学习之路——线程3(线程之间的通信)
- Java基础——线程同步通信
- Java——线程间通信问题
- java基础——线程通信
- Java基础—线程间通信
- java学习——如何实现线程之间的通信 ,Condition 的使用
- 黑马程序员—11—java基础:有关线程通信的学习笔记和学习心得体会
- java多线程学习笔记(六) ——线程间的通信(初接触)
- 多线程06:《疯狂Java讲义》学习笔记——线程通信
- java线程同步及通信Demo——传统的线程通信
- java线程学习(1)—线程安全
- java线程学习(八)—线程封闭
- HDU ACM 1017 A Mathematical Curiosity 水题
- HDU 1723 Distribute Message--DP--(特殊意义)
- 第十一周项目-1.2
- C#Socket服务器开发(Unity)
- 阿里云 IIS 500错误
- Java 学习————线程直接通信
- Pig 知识盲点
- 深入理解tomcat读书笔记
- poj 3250 Bad Hair Day 单调栈
- GLIB 常用数据结构介绍 2
- Putting it Together: Understanding Pointers
- 物流运交管理系统 派车作业
- MFC 字符串类CString 源代码
- servlet项目出现405错误