ReentrantLock的简单使用

ReentrantLock:

 1 /**
 2  *    ReentrantLock测试逻辑类
 3  */
 4 public class MyService {
 5     private Lock lock = new ReentrantLock();//获取锁对象
 6     
 7     public void testMethod() {
 8         lock.lock();
 9         for (int i = 0; i < 5; i++) {
10             System.out.println(Thread.currentThread().getName() + "----" + (i+1));
11         }
12         lock.unlock();
13     }
14 }
 1 /**
 2  *    ReentrantLock测试逻辑线程
 3  */
 4 public class MyThread extends Thread{
 5     
 6     private MyService service;
 7     
 8     public MyThread(MyService service) {
 9         this.service = service;
10         this.start();
11     }
12     
13     @Override
14     public void run() {
15         service.testMethod();
16     }
17 }
 1 /**
 2  *    测试类
 3  */
 4 public class Run {
 5 
 6     public static void main(String[] args) {
 7         MyService service = new MyService();
 8         
 9         //实例化 并且实例化的时候默认就调用start()方法启动
10         MyThread thread1 = new MyThread(service);
11         MyThread thread2 = new MyThread(service);
12         MyThread thread3 = new MyThread(service);
13         MyThread thread4 = new MyThread(service);
14     }
15 }

运行结果如下:

  

原文地址:https://www.cnblogs.com/wang1001/p/9566598.html