freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java培訓(xùn)-java高并發(fā)大全(編輯修改稿)

2024-10-21 04:27 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 public class IdGenerator {private final AtomicLong sequenceNumber = new AtomicLong(0)。public long next(){return ()。} } 顯示鎖基于synchronized關(guān)鍵字的鎖機(jī)制有以下問(wèn)題:鎖只有一種類(lèi)型,而且對(duì)所有同步操作都是一樣的作用 鎖只能在代碼塊或方法開(kāi)始的地方獲得,在結(jié)束的地方釋放 線程要么得到鎖,要么阻塞,沒(méi)有其他的可能性Java 5對(duì)鎖機(jī)制進(jìn)行了重構(gòu),提供了顯示的鎖,這樣可以在以下幾個(gè)方面提升鎖機(jī)制:可以添加不同類(lèi)型的鎖,例如讀取鎖和寫(xiě)入鎖 可以在一個(gè)方法中加鎖,在另一個(gè)方法中解鎖可以使用tryLock方式嘗試獲得鎖,如果得不到鎖可以等待、回退或者干點(diǎn)別的事情,當(dāng)然也可以在超時(shí)之后放棄操作 ,主要有兩個(gè)實(shí)現(xiàn)類(lèi):ReentrantLock在讀操作很多寫(xiě)操作很少時(shí)性能更好的一種重入鎖對(duì)于如何使用顯示鎖,可以參考我的Java面試系列文章《Java面試題集5170》中第60題的代碼。只有一點(diǎn)需要提醒,解鎖的方法unlock的調(diào)用最好能夠在finally塊中,因?yàn)檫@里是釋放外部資源最好的地方,當(dāng)然也是釋放鎖的最佳位置,因?yàn)椴还苷.惓?赡芏家尫诺翩i來(lái)給其他線程以運(yùn)行的機(jī)會(huì)。CountDownLatchCountDownLatch是一種簡(jiǎn)單的同步模式,它讓一個(gè)線程可以等待一個(gè)或多個(gè)線程完成它們的工作從而避免對(duì)臨界資源并發(fā)訪問(wèn)所引發(fā)的各種問(wèn)題。下面借用別人的一段代碼(我對(duì)它做了一些重構(gòu))來(lái)演示CountDownLatch是如何工作的。import 。/** * 工人類(lèi)* @author 駱昊* */ class Worker {private String name。// 名字private long workDuration。// 工作持續(xù)時(shí)間/*** 構(gòu)造器*/public Worker(String name, long workDuration){ = name。 = workDuration。}/*** 完成工作*/public void doWork(){(name + “ begins to work...”)。try {(workDuration)。// 用休眠模擬工作執(zhí)行的時(shí)間} catch(InterruptedException ex){()。}(name + “ has finished the job...”)。} } /** * 測(cè)試線程* @author 駱昊* */ class WorkerTestThread implements Runnable {private Worker worker。private CountDownLatch cdLatch。public WorkerTestThread(Worker worker, CountDownLatch cdLatch){ = worker。 = cdLatch。}@Overridepublic void run(){()。// 讓工人開(kāi)始工作()。// 工作完成后倒計(jì)時(shí)次數(shù)減1} } class CountDownLatchTest {private static final int MAX_WORK_DURATION = 5000。// 最大工作時(shí)間private static final int MIN_WORK_DURATION = 1000。// 最小工作時(shí)間// 產(chǎn)生隨機(jī)的工作時(shí)間private static long getRandomWorkDuration(long min, long max){return(long)(()*(max1)。// 如果有N個(gè)哲學(xué)家,最多只允許N1人同時(shí)取叉子}/*** 取得叉子* @param index 第幾個(gè)哲學(xué)家* @param leftFirst 是否先取得左邊的叉子* @throws InterruptedException*/public static void putOnFork(int index, boolean leftFirst)throws InterruptedException {if(leftFirst){forks[index].acquire()。forks[(index + 1)% NUM_OF_PHILO].acquire()。}else {forks[(index + 1)% NUM_OF_PHILO].acquire()。forks[index].acquire()。}}/*** 放回叉子* @param index 第幾個(gè)哲學(xué)家* @param leftFirst 是否先放回左邊的叉子* @throws InterruptedException*/public static void putDownFork(int index, boolean leftFirst)throws Interrup
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1