偶数 (java实现)"/>
【算法】两个线程 交替打印奇偶数 (java实现)
package com.billkang.algorithm;/*** 两个线程 交替打印奇偶数** @author Kangbin* @date 2018-11-28*/
public class OddEven {public static class Num {int i = 1;/*** 线程交替标识,false时打印奇*/boolean flag = false;}public static class PrintOdd implements Runnable {Num num;public PrintOdd(Num num) {this.num = num;}@Overridepublic 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();}}}}}public static class PrintEven implements Runnable {Num num;public PrintEven(Num num) {this.num = num;}@Overridepublic 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();}}}}}public static void main(String[] args) {Num num = new Num();new Thread(new PrintOdd(num)).start();new Thread(new PrintEven(num)).start();}
}
更多推荐
【算法】两个线程 交替打印奇偶数 (java实现)
发布评论