Java執行緒(二)

2021-08-25 16:30:39 字數 714 閱讀 1379

今天重新整理關於concurrent包的使用。

lock 介面, 提供了synchronized的功能, 同時額外增加複雜性,處理複雜問題的能力,因為在synchronized的時候,可以順序的獲取多個鎖,同時也需要倒序的釋放這些鎖,碰到一些情況這個就不能滿足了,這時候lock就可以,

它實現了鎖在不同作用範圍的獲取和釋放,同時不同順序的獲取和釋放。

通常這樣使用

lock l = ...

l.lock();

tryfinally finally

}public object take() throws interruptedexception finally

} }

countdownlatch

乙個同步輔助類,在完成一組正在其他執行緒中執行的操作之前,它允許乙個或多個執行緒一直等待。
主要方法

public countdownlatch(int count);

public voidcountdown();

public voidawait() throws interruptedexception

構造方法引數指定了計數的次數

countdown方法,當前執行緒呼叫此方法,則計數減一

awaint方法,呼叫此方法會一直阻塞當前執行緒,直到計時器的值為0

Java執行緒(二)

昨天我們認識了什麼是執行緒和實現他的兩種方式,今天我們再進一步了解。執行緒的狀態轉換是執行緒控制的基礎。執行緒狀態總的可分為五大狀態 分別是生 死 可執行 執行 等待 阻塞。如下圖 上圖能夠清晰的看出執行緒見得狀態是如何轉換的,並且標註了在不同的狀態執行緒對cpu的資源使用情況。其中對執行緒操作的方...

java 執行緒 二

執行緒的同步和通訊是乙個重點。很多書上講解執行緒之間的同步時,都使用了乙個售票系統。public class threaddemo2 implements runnable catch interruptedexception e system.out.println 售出第 i 張票 thread...

Java 多執行緒 二

執行緒安全問題 引出同步 塊 通過下面的例子,了解傳統多執行緒存在的執行緒安全隱患。需求 買票 四個視窗同時買票。class ticket implements runnable extends thread catch exception e system.out.println thread.c...