首页 > 其他 > 详细

Notifyl学习笔记

时间:2018-08-11 23:17:05      阅读:240      评论:0      收藏:0      [点我收藏+]
/** * @param args * 等待唤醒机制 */ public static void main(String[] args) { final Printer p = new Printer(); new Thread() { public void run() { while(true) { try { p.print1(); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); new Thread() { public void run() { while(true) { try { p.print2(); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } } //等待唤醒机制 class Printer { private int flag = 1; public void print1() throws InterruptedException { synchronized(this) { if(flag != 1) { this.wait(); //当前线程等待 } System.out.print("白"); System.out.print("日"); System.out.print("一"); System.out.print("山"); System.out.print("过"); System.out.print("\r\n"); flag = 2; this.notify(); //随机唤醒单个等待的线程 } } public void print2() throws InterruptedException { synchronized(this) { if(flag != 2) { this.wait(); } System.out.print("黄"); System.out.print("河"); System.out.print("入"); System.out.print("海"); System.out.print("流"); System.out.print("\r\n"); flag = 1; this.notify(); } }

Notifyl学习笔记

原文:http://blog.51cto.com/357712148/2158222

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!