多執行緒-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多執行緒/併發06、執行緒鎖Lock與ReadWriteLockJava執行緒
- 多執行緒與併發-----Lock鎖技術執行緒
- Java多執行緒之執行緒同步【synchronized、Lock、volatitle】Java執行緒synchronized
- 多執行緒-執行緒概述等執行緒
- 多執行緒概述執行緒
- java多執行緒之執行緒的基本使用Java執行緒
- Java 多執行緒併發程式設計之互斥鎖 Reentrant LockJava執行緒程式設計
- ObjC 多執行緒簡析(一)-多執行緒簡述和執行緒鎖的基本應用OBJ執行緒
- Python 多執行緒和鎖Python執行緒
- java--多執行緒之後臺執行緒Java執行緒
- 多執行緒_鎖執行緒
- Linux多執行緒的使用一:互斥鎖Linux執行緒
- Java多執行緒-鎖的區別與使用Java執行緒
- 多執行緒鎖的問題執行緒
- 多執行緒之8鎖問題執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- JAVA多執行緒詳解(3)執行緒同步和鎖Java執行緒
- ObjC 多執行緒簡析(二)- os_unfair_lock的型別和自旋鎖與互斥鎖的比較OBJ執行緒AI型別
- Java多執行緒 -- 公平鎖和非公平鎖Java執行緒
- Java多執行緒1:程式與執行緒概述Java執行緒
- 多執行緒安全性和Java中的鎖執行緒Java
- Java多執行緒-執行緒池的使用Java執行緒
- 畫江湖之 PHP 多執行緒開發 【執行緒安全 互斥鎖】PHP執行緒
- 畫江湖之 PHP 多執行緒開發 [執行緒安全 互斥鎖]PHP執行緒
- java 多執行緒之使用 interrupt 停止執行緒的幾種方法Java執行緒
- MFC多執行緒的建立,包括工作執行緒和使用者介面執行緒執行緒
- java多執行緒:synchronized和lock比較淺析Java執行緒synchronized
- 多執行緒和多執行緒同步執行緒
- Java 多執行緒之內建鎖與顯示鎖Java執行緒
- Java 多執行緒 - 總結概述Java執行緒