首页 > 学院 > 开发设计 > 正文

线程锁Lock

2019-11-08 01:12:04
字体:
来源:转载
供稿:网友

              Lock是一个接口,知道这个哪些实现类

                 

        查看接口实现类通过

                     

    在上锁后,只有上锁这部分代码执行完后其他线程才可以执行上锁的代码块

lock.lock();  

    代码块

  lock.unlock();

 

import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class LockTest {      public static void main(String[] args) { final Lock lock = new  ReentrantLock();new Thread(new Runnable() {@Overridepublic void run() {lock.lock();try{          for(int i=0;i<100;i++){           System.out.PRintln("-a");          }}finally{lock.unlock();}      }}).start();new Thread(new Runnable() {@Overridepublic void run() {lock.lock();try{          for(int i=100;i<310;i++){           System.out.println("-b");          }}finally{lock.unlock();}}}).start(); }}

输出:

-a-a-a

..-b-b-b-b-b-b-b

...    

分析:只有输出a的线程执行完毕后,解锁后,输出b的线程才可以执行输出b


上一篇:观察者模式

下一篇:HttpClient4.3.1

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表