1. 程式人生 > >【10】公平鎖/非公平鎖

【10】公平鎖/非公平鎖

int sta lean 運行 ide pub isp tar fin

說起來用起來其實很簡單 ReentrantLock

公平鎖的就是我先到了,發出申請,此時我一定排在那到鎖隊列的前面

非公平鎖,就是 我要拿鎖 有人拿了,我排隊,沒人拿,就是我的 排隊的等著

技術分享圖片
package Concurrency.mid;

import java.util.concurrent.locks.ReentrantLock;

class Service{
    private ReentrantLock  lock;
    public Service(boolean flag){
        lock = new ReentrantLock(flag);
    }
    
public void serviceMethod(){ try{ lock.lock(); System.out.println(Thread.currentThread().getName()+ "鎖定成功"); }finally { lock.unlock(); } } } public class ReentrantLockTest { public static void main(String []arg){ final Service s= new
Service(true); Runnable r = new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()+ "運行了 成功"); s.serviceMethod(); } }; Thread [] t = new Thread[10]; for(int i=0;i<10;i++){ t[i]
= new Thread(r); } for(int i=0;i<10;i++){ t[i].start(); } } }
View Code

實現源碼 看不懂(等我在學學的 再補)

【10】公平鎖/非公平鎖