zoukankan      html  css  js  c++  java
  • java ReentrantLock 公平锁 非公平锁 测试

     1 package reentrantlock;
     2 
     3 import java.util.ArrayList;
     4 import java.util.concurrent.locks.ReentrantLock;
     5 
     6 public class TestFairSyn {
     7 
     8     public static void main(String[] args) {
     9         ArrayList<Thread> arrayList = new ArrayList<>();
    10         Resrc resrc = new Resrc();
    11 
    12         for (int i = 0; i < 15; i++){
    13             arrayList.add(new Thread(resrc));
    14         }
    15         for (int i = 0; i < 15; i++){
    16             arrayList.get(i).start();
    17         }
    18     }
    19 
    20     static class Resrc implements Runnable{
    21         private static boolean isTestFair = true;
    22         ReentrantLock reentrantLock = new ReentrantLock(isTestFair);
    23 
    24         @Override
    25         public void run() {
    26             System.out.println(Thread.currentThread().getId()+" 尝试获得锁");
    27             reentrantLock.lock();
    28             if (false){
    29                 System.out.println("		" + Thread.currentThread().getId() + " 成功获得锁-解锁");
    30                 reentrantLock.unlock();
    31             }
    32             else {
    33                 try {
    34                     System.out.println("		" + Thread.currentThread().getId() + " 成功获得锁");
    35                     // 如果测试 公平锁,把睡眠时间取消,能够大大增加线程的抢占现象
    36                     Thread.sleep(0, 100);
    37                 } catch (InterruptedException e) {
    38                     e.printStackTrace();
    39                 } finally {
    40                     System.out.println("		" + "		" + Thread.currentThread().getId() + " 解锁");
    41                     reentrantLock.unlock();
    42                 }
    43             }
    44         }
    45     }
    46 
    47 }
  • 相关阅读:
    基站选址(编程之美2015资格赛)
    2月29日(编程之美2015资格赛)
    跳马
    电子老鼠闯迷宫
    解决按钮重复提交 unbind+bind+setTimeout
    XMLHttpRequest 中 blob类型数据转text
    ExtJs之列表(grid)
    ExtJs之组件(window)
    ExtJs基础
    问题与成长
  • 原文地址:https://www.cnblogs.com/cnblogszs/p/10361387.html
Copyright © 2011-2022 走看看