锁对象Lock-同步问题

 Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,实现一下和sychronized一样的效果,代码如下:


public class LockTest {  
   public static void main(String[] args) {  
       final Outputter1 output = new Outputter1();  
       new Thread() {  
           public void run() {  
               output.output("zhangsan");  
           };  
       }.start();        
       new Thread() {  
           public void run() {  
               output.output("lisi");  
           };  
       }.start();  
   }  
}  
class Outputter1 {  
   private Lock lock = new ReentrantLock();// 锁对象  
   public void output(String name) {  
       // TODO 线程输出方法  
       lock.lock();// 得到锁  
       try {  
           for(int i = 0; i < name.length(); i++) {  
               System.out.print(name.charAt(i));  
           }  
       } finally {  
           lock.unlock();// 释放锁  
       }  
   }  
}


你可能感兴趣的:(Lock)