一:Lock锁接口的实现方式ReentrantLock()
ReentrantLock()是已知唯一一个Lock的实现。在上文我们都使用ReentrantLock()作为实现的。关于
二:Lock的特殊的Api-Condition
在上一节,我们谈到了Lock常用的一些接口方法Lock(),tryLock()等等。实则上Lock还有一个api我们单独拿出来说-condition。每一个线程都可以返回一个condition,可以在代码的其他地方控制同步方法的堵塞和唤醒。
下面直接用一个实例来说明吧:
package LockApi;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
* Condition提供了比wait()/notity()更加丰富的功能
* @author monxz
*
*/
public class ConditionService {
private Lock lock = new ReentrantLock();
public Condition condition = lock.newCondition();
/**
* 类似于wait()
*/
public void await(){
try{
lock.lock();
System.out.println("await的时间为 " + System.currentTimeMillis());
//当前线程
condition.await();