偶数(wait和notify实现以及原理简介)"/>
线程交替打印奇偶数(wait和notify实现以及原理简介)
wait和notify是Object的方法,不是thread的方法。
Object,notify()作用是唤醒持有这个Object对象锁的线程,
Object,wait()作用是让当前线程进入阻塞状态。
因此 notify和wait只能用于synchronized内部,因为synchronized会指定对象锁,
而wait的前提是当前线程持有锁。
如果不在synchronized代码包含范围内会报错。
思路:定义一个object 作为锁,然后将打印的逻辑都用synchronized包含起来,
先启动了奇数线程,因为初始值i为0,i%2==1不成立,奇数线程进入wait状态,
这个时候偶数线程启动,然后打印完偶数,执行notify唤醒奇数线程,然后进入wait状态。
奇数线程被唤醒之后,打印奇数,然后执行notify唤醒偶数线程,随后自己进入wati状态。
依次。
package demo6;/*** @ClassName AlternatePrintingNotifyAndWait* @Author laixiaoxing* @Date 2019/3/17 下午7:40* @Description 交替打印奇偶数 notify实现* @Version 1.0*/
public class AlternatePrintingNotifyAndWait {private static Object object = new Object();private static int i = 0;public static void main(String[] args) throws InterruptedException {
更多推荐
线程交替打印奇偶数(wait和notify实现以及原理简介)
发布评论