Lock
- 是什么
參考java8API
Lock implementations provide more extensive locking operations than can be obtained using synchronized methods and statements. They allow more flexible structuring, may have quite different properties, and may support multiple associated Condition objects.
Lock實現(xiàn)提供更廣泛的鎖定操作可以比使用 synchronized獲得方法和聲明更好。他們允許更靈活的結(jié)構(gòu),可以有完全不同的特性,可以支持多個相關(guān)的 Condition對象。
java培訓(xùn)教程Lock接口
- Lock接口的實現(xiàn)
ReentrantLock可重入鎖,參考Java8API
- 創(chuàng)建線程方式
- 繼承Thread
例如:
public class SaleTicket extends Thread
Java是單繼承,資源寶貴,要用接口方式
- new Thread()
例如:
Thread t1 = new Thread();
t1.start();
不能這樣實現(xiàn)
- Thread(Runnable target, String name)
參考Java8API

- 實現(xiàn)線程方法
- 新建類實現(xiàn)runnable接口
class MyThread implements Runnable//新建類實現(xiàn)runnable接口
new Thread(new MyThread,…)
這種方法會新增類,有更新更好的方法
- 匿名內(nèi)部類
new Thread(new Runnable() {
@Override
public void run() {
}
}, “your thread name”).start();
這種方法不需要創(chuàng)建新的類,可以new接口
- lambda表達式
new Thread(() -> {
}, “your thread name”).start();
這種方法代碼更簡潔精煉
- 程序代碼
package com.atguigu.thread;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
class Ticket //實例例eld +method
{
private int number=30;
// Lock implementations provide more extensive locking operations
// than can be obtained using synchronized methods and statements.
private Lock lock = new ReentrantLock();//List list = new ArrayList()
public void sale()
{
lock.lock();
try {
if(number > 0) {
System.out.println(Thread.currentThread().getName()+”賣出”+(number–)+”\t 還剩number);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
lock.unlock();
}

}
}
}
}
相關(guān): 深圳前端培訓(xùn)機構(gòu)哪家比較好——深圳跨專業(yè)學(xué)習(xí)Java可以嗎
本文鏈接:
本文章“JUC之Lock接口_java培訓(xùn)”已幫助 229 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579