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 }
运行结果如下: