线程学习笔记【4】---线程之间通信
2011-08-29 17:31
393 查看
子线程先循环10次,然后主线程循环100次,再子线程循环10次,主线程循环100次,就这样循环往复50次。
经验:要用到共同数据(包括同步锁)或共同算法的若干方法应该归在同一个类身上,这种设计体现了高类聚和程序的健壮性。
互斥、同步、通信问题的逻辑不是写在线程代码上,而是在线程访问那个资源类上。
public class Communtion01 { public static void main(String args[]) { final Bussiness buss = new Bussiness(); new Thread(new Runnable() { public void run() { for (int j = 1; j <= 50; j++) { buss.sub(j); } } }).start(); for (int j = 1; j <= 50; j++) { buss.main(j); } } } class Bussiness { private boolean subFlag = true; //Cpu照顾sub线程,执行到sub(),但还不该sub执行,那就wait public synchronized void sub(int j) { while (!subFlag) { try { this.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } for (int i = 1; i <= 10; i++) { System.out.println(Thread.currentThread().getName() + "在第" + j + "次循环了" + i); } subFlag = false; this.notify(); } public synchronized void main(int j) { while(subFlag) { try { this.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } for (int i =1; i <=100; i++) { System.out.println(Thread.currentThread().getName() + "在第" + j + "次循环了" + i); } subFlag = true; this.notify(); } }
经验:要用到共同数据(包括同步锁)或共同算法的若干方法应该归在同一个类身上,这种设计体现了高类聚和程序的健壮性。
互斥、同步、通信问题的逻辑不是写在线程代码上,而是在线程访问那个资源类上。
相关文章推荐
- 线程之间的通信socketpair【学习笔记】【原创】
- Java学习笔记46(多线程三:线程之间的通信)
- 学习java多线程的笔记3-使用BlockingQueue阻塞队列来模拟两个线程之间的通信
- Android(java)学习笔记70:同步中的死锁问题以及线程通信问题
- 关于线程与进程之间的关系,今天学习了一下,在这做一下笔记。
- Prism学习笔记-模块之间通信的几种方式
- python学习笔记——线程间通信Event
- Android笔记(三十) Android中线程之间的通信(二)Handler消息传递机制
- 2016.6.22笔记(1)-线程之间的通信
- Android笔记(三十二) Android中线程之间的通信(四)主线程给子线程发送消息
- iOS学习笔记-104.多线程03——线程间通信图片下载与时间计算
- 黑马程序员_多线程的线程间通信学习笔记
- [知了堂学习笔记]_线程通信(生产者和消费者模式)
- java学习——如何实现线程之间的通信 ,Condition 的使用
- Java学习笔记之线程间的通信
- 黑马程序员—11—java基础:有关线程通信的学习笔记和学习心得体会
- Java SE学习笔记:线程通信、生产者与消费者案例、线程状态(线程的生命周期)、线程操作、Condition类
- angular控制器之间的通信(学习笔记)
- [每日一学]MFC学习笔记——多窗口之间的通信
- 学习笔记--进程及线程间通信方式的区别及联系