多執行緒-JDK5之後的Lock鎖的概述和使用
package cn.itcast_01;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class SellTicket implements Runnable {
// 定義票
private int tickets = 100;
// 定義鎖物件
private Lock lock = new ReentrantLock();
@Override
public void run() {
while (true) {
try {
// 加鎖
lock.lock();
if (tickets > 0) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "正在出售第" + (tickets--) + "張票");
}
} finally {
// 釋放鎖
lock.unlock();
}
}
}
}
package cn.itcast_01;
/*
* 雖然我們可以理解同步程式碼塊和同步方法的鎖物件問題,但是我們並沒有直接看到在哪裡加上了鎖,在哪裡釋放了鎖,
* 為了更清晰的表達如何加鎖和釋放鎖,JDK5以後提供了一個新的鎖物件Lock。
*
* Lock:
* void lock(): 獲取鎖。
* void unlock():釋放鎖。
* ReentrantLock是Lock的實現類.
*/
public class SellTicketDemo {
public static void main(String[] args) {
// 建立資源物件
SellTicket st = new SellTicket();
// 建立三個視窗
Thread t1 = new Thread(st, "視窗1");
Thread t2 = new Thread(st, "視窗2");
Thread t3 = new Thread(st, "視窗3");
// 啟動執行緒
t1.start();
t2.start();
t3.start();
}
}
相關文章
- Java多執行緒學習(六)Lock鎖的使用Java執行緒
- 多執行緒中使用Lock鎖定多個條件Condition的使用執行緒
- 多執行緒的概述執行緒
- Java多執行緒之執行緒同步【synchronized、Lock、volatitle】Java執行緒synchronized
- 多執行緒與併發-----Lock鎖技術執行緒
- java多執行緒之執行緒的基本使用Java執行緒
- Linux多執行緒的使用一:互斥鎖Linux執行緒
- ObjC 多執行緒簡析(一)-多執行緒簡述和執行緒鎖的基本應用OBJ執行緒
- Java多執行緒-鎖的區別與使用Java執行緒
- ObjC 多執行緒簡析(二)- os_unfair_lock的型別和自旋鎖與互斥鎖的比較OBJ執行緒AI型別
- 多執行緒_鎖執行緒
- 多執行緒之8鎖問題執行緒
- JAVA多執行緒詳解(3)執行緒同步和鎖Java執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- Java多執行緒 -- 公平鎖和非公平鎖Java執行緒
- 多執行緒安全性和Java中的鎖執行緒Java
- Java多執行緒-執行緒池的使用Java執行緒
- java 多執行緒之使用 interrupt 停止執行緒的幾種方法Java執行緒
- 畫江湖之 PHP 多執行緒開發 【執行緒安全 互斥鎖】PHP執行緒
- 畫江湖之 PHP 多執行緒開發 [執行緒安全 互斥鎖]PHP執行緒
- 執行緒和程式基礎以及多執行緒的基本使用(iOS)執行緒iOS
- 多執行緒和多執行緒同步執行緒
- Java 多執行緒 - 總結概述Java執行緒
- 多執行緒(2)-執行緒同步互斥鎖Mutex執行緒Mutex
- iOS多執行緒安全-13種執行緒鎖?iOS執行緒
- Android小知識-Java多執行緒相關(Lock使用)AndroidJava執行緒
- 6.JUC執行緒高階-Lock同步鎖執行緒
- 多執行緒的libcurl的使用執行緒
- python之執行緒鎖Python執行緒
- 多執行緒:執行緒池理解和使用總結執行緒
- Android中後臺的服務和多執行緒Android執行緒
- 多執行緒05:unique_lock詳解執行緒
- Java多執行緒之Executor框架和手寫簡易的執行緒池Java執行緒框架
- Python並行程式設計(二):多執行緒鎖機制利用Lock與RLock實現執行緒同步Python並行行程程式設計執行緒
- C++中的多執行緒及其之後的周邊C++執行緒
- python多執行緒、鎖、event事件機制的簡單使用Python執行緒事件
- Python的多程式和多執行緒Python執行緒
- 多執行緒筆記---鎖(Synchronized)的優化和種類執行緒筆記synchronized優化
- 多執行緒系列之 執行緒安全執行緒