赞
踩
使用jdk1.5并发包中引入的lock方式,这种方式使用比synchronized这种方式更加灵活,也提供了在获取锁时阻塞的办法
代码如下:
- package com.zcj.thread;
-
- import java.util.concurrent.locks.Condition;
- import java.util.concurrent.locks.ReentrantLock;
-
- public class PrintABC {
- private int status =1;
- private ReentrantLock lock = new ReentrantLock();
- private Condition conditionA = lock.newCondition();
- private Condition conditionB = lock.newCondition();
- private Condition conditionC = lock.newCondition();
-
- public void printA(){
- lock.lock();
- try{
- if(status!=1){
- conditionA.await();
- }
- System.out.print("A");
- status=2;
- conditionB.signal();
- }catch(InterruptedException e){
- e.printStackTrace();
- }finally{
- lock.unlock();
- }
- }
- public void printB(){
- lock.lock();
- try{
- if(status!=2){
- conditionB.await();
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。