Java 多线程中。两个线程交替执行,一个输出偶数,一个输出奇数(方法一)
2017-07-10 22:40
886 查看
public class DigitPrinterExample { public static void main(String[] args) { Number num = new Number(); OddPriter oddPriter = new OddPriter(num); EvenPrinter evenPrinter = new EvenPrinter(num); Thread oddthread = new Thread(oddPriter); Thread eventhread = new Thread(evenPrinter); oddthread.start(); eventhread.start(); } } class Number{ int i = 0; boolean flag = true; } /** * 打印奇数得线程 */ class OddPriter implements Runnable{ Number num; public OddPriter(Number num) { this.num = num; } @Override public void run() { while (num.i <= 100){ //同步锁保证一致性 synchronized (num){ if(num.flag){ try{ num.wait(); }catch (InterruptedException e){ e.printStackTrace(); } }else{ System.out.println(" 奇数:" + num.i); num.i++; num.flag = true; num.notify(); } } } } } /** * 打印偶数的线程 */ class EvenPrinter implements Runnable{ Number num; public EvenPrinter(Number num) { this.num = num; } @Override public void run() { while (num.i <= 100){ synchronized (num){ if (!num.flag){ try { num.wait(); } catch (InterruptedException e) { e.printStackTrace(); } }else{ System.out.println(" 偶数:" + num.i); num.i++; num.flag = false; num.notify(); } } } } } ---------- 运行结果: 偶数:0 奇数:1 偶数:2 奇数:3 偶数:4 奇数:5 偶数:6 奇数:7 偶数:8 奇数:9 偶数:10
相关文章推荐
- Java 多线程中。两个线程交替执行,一个输出偶数,一个输出奇数(方法二)
- Java 多线程中。两个线程交替执行,一个输出偶数,一个输出奇数
- 面试必问!Java 多线程中两个线程交替执行,一个输出偶数,一个输出奇数
- Java 多线程实现的三种方法,附两个线程执行不同的输出
- java两个线程轮流输出奇数和偶数到100
- 1、写一个函数返回参数二进制中 1 的个数(三种方法)2、获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列3、输出一个整数的每一位。4、两个int(32位)整数m和n的二进制表达中,有多
- 每天一道算法题7 查找链表中倒数第k个结点 ; 输入一个单向链表。如果该链表的结点数为奇数,输出中间的结点;如果链表结点数为偶数,输出中间两个结点前面的一个
- java 中的wait和notify以及synchronized的使用,实现两个线程交替执行
- 【多线程】两个线程 交替执行
- 输入任意大小的三个整数,判断其中是否有两个奇数一个偶数。若是,则输出“YES”,不是则输出“NOT” (要求用条件表达式进行判断,不使用if语句)
- 使用两个线程交替打印0到100的奇数和偶数
- 输出一个数的二进制数的奇数序列和偶数序列(三种方法)
- [Java 09 多线程] 线程是指一个进程在执行过程中可以产生更小的程序单元
- JAVA多线程之两个线程同时写一个文件
- C# 如何让 多线程中每个线程间隔毫秒执行同一个方法
- 多线程线程池控制一个方法的并发量 限制只有5个线程执行任务
- 多线程用同一个dao对象就会存在多个线程执行同一方法,为什么不用考虑线程安全问题
- 重新想象 Windows 8 Store Apps (42) - 多线程之线程池: 延迟执行, 周期执行, 在线程池中找一个线程去执行指定的方法
- [java多线程]创建线程的两个方法
- Java 多线程 子线程 交替打印 奇偶数