Java之线程通信一
来源:互联网 发布:天一古琴淘宝店 编辑:程序博客网 时间:2024/06/04 18:35
写2个线程,其中一个打印1-52,另一个打印A-Z,打印顺序是12A34B56C….5152Z。这里使用线程通信的方式控制上面的打印顺序。
Printer类:
该类提供两个同步方法printChar()和printNumber(),分别打印字符和数字。通过两个打印线程之间的通信控制:每打印两个数字后,打印一个字符,如此循环。代码如下:
public class Printer{ private int printCount = 0; public synchronized void printNumber() { try { for (int i = 1 ; i <= 52 ; i++ , printCount++) { if (printCount > 1) { i--; wait(); } else { Log.d("Thread", i + ""); if (printCount == 1) { notifyAll(); } } } } catch (InterruptedException e) { e.printStackTrace(); } } public synchronized void printChar() { try { for (char c = 'A' ; c <= 'Z' ; c++) { if (printCount <= 1) { c--; wait(); } else { Log.d("Thread" , c + ""); printCount = -1; notifyAll(); } } } catch (InterruptedException ex) { ex.printStackTrace(); } }}
两个打印线程:
public class NumberThread extends Thread{ private Printer printer; public NumberThread(Printer printer) { this.printer = printer; } @Override public void run() { printer.printNumber(); }}
public class CharThread extends Thread{ private Printer printer; public CharThread(Printer printer) { this.printer = printer; } @Override public void run() { printer.printChar(); }}
MainActivity类:
public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main_activity); Printer printer = new Printer(); new NumberThread(printer).start(); new CharThread(printer).start(); }}
完毕,很简单的例子。
0 0
- Java之线程通信一
- Java线程通信 (一)
- JAVA基础之线程通信
- java多线程之线程通信
- JAVA 线程 之 死锁和线程通信
- Java线程之Condition高效线程通信
- java线程之线程同步与线程通信(Synchronized/Lock)
- java Thread:线程同步之进程通信
- java 之 Condition 线程间通信
- java基础之线程间通信
- 黑马程序员之java线程通信学习
- Java Socket之单线程通信
- Java多线程之线程的通信
- java多线程之线程间同步通信
- java基础之线程间通信
- java多线程之线程间通信
- Java之【线程通信】--标志位练习
- java笔记之线程间通信
- c++基础之指针
- 函数动态调用 研究
- SQL 数据库 学习 011 关系、一对一、一对多、多对多
- iOS应用安全读书笔记之语音邮件
- uboot常用命令
- Java之线程通信一
- adapter的封装
- Handler通信机制源码解析
- iuni-myOrder(分页$pagination)
- HTML5新特性浅谈
- 【高精度计算】加减乘模板(水)
- python数据结构学习笔记-2016-10-14-02-python列表
- 算法学习:遗传算法初体验
- 递归与循环相比时间优势的真正来源