条件阻塞Condition的应用

【java并发】条件阻塞Condition的应用

你。 提交于 2020-03-02 11:24:59
问题1:有两个线程,子线程先执行10次,然后主线程执行5次,然后再切换到子线程执行10,再主线程执行5次……如此往返执行50次。 Condition将Object监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待 set(wait-set)。其中,Lock 替代了synchronized方法和语句的使用,Condition替代了Object监视器方法的使用。 1. Condition的基本使用 由于Condition可以用来替代wait、notify等方法,所以可以对比着之前写过的线程间通信的代码来看,来实现摘要中的问题,之前用wait和notify来实现的,现在用Condition来改写一下,代码如下: package com.jie.thread.condition; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * \* Created with IntelliJ IDEA. * \* User: wugong.jie * \* Date: 2018