促銷活動
學習
Adesua ahorow
任務
問卷及小測驗
遊戲
幫助
學習提醒時程表
社群
使用者
論壇
聊天
文章
成功故事
活動
評論
訂閱
亮色主題
課堂
評論
關於我們
開始
開始學習
現在就開始學習
Me Nkɔso
Adesua ahorow
探索地圖
課堂
Module 3. Java Adwumayɛfoɔ
等級 19
Java 並發庫
Module 3 a ɛto so abien
等級 19,
課堂 0
如果字段被聲明為或由在任何讀寫之前獲取的唯一鎖保護,則對該字段的讀寫是原子操作。但是如果仍然遇到錯誤,那麼你會得到一個關於重新排序的錯誤(改變順序,重新排序)。它表現為不正確同步的多線程程序,其中一個線程可以觀察到其他線程產生的影響。
Java 中的原子操作
Module 3 a ɛto so abien
等級 19,
課堂 1
原子操作出現的先決條件 讓我們看一下這個示例,以幫助您了解原子操作的工作原理: public class Counter {
並發集合
Module 3 a ɛto so abien
等級 19,
課堂 2
CopyOnWriteArrayList 對給定集合的add、set、remove操作會導致創建內部數組的新副本。這確保我們不會捕獲ConcurrentModificationException。 請記住,在復制數組時,只會復制對對象的引用,包括對非線程安全元素字段的訪問。此類集合最適用於寫入操作最少的情況。 CopyOnWriteArrayList 是ArrayList 的線程安全模擬,基於 CopyOnWrite 算法實現。其他方法和構造函數如下所述: CopyOnW
並發隊列
Module 3 a ɛto so abien
等級 19,
課堂 3
非阻塞隊列 鏈接節點上的線程安全和最重要的非阻塞隊列實現。 ConcurrentLinkedQueue - 它使用適用於垃圾收集器的無等待算法。該算法非常高效且快速,因為它是基於 CAS 構建的。size()方法可以運行很長時間,所以最好不要一直拉。 ConcurrentLinkedDeque - Deque 代表雙端隊列。這意味著可以從兩側添加和提取數據。因此,該類支持兩種操作模式:FIFO(先進先出)和 LIFO(後進先出)。 實際上,如果絕對需要 LIFO,
同步器:在 Java 中同步對資源的訪問
Module 3 a ɛto so abien
等級 19,
課堂 4
信號 當使用文件系統時需要限制線程數時,通常會使用信號量。通過計數器控制對文件或其他共享資源的訪問。如果其值大於零,則允許訪問,但同時計數器會減少。 在計數器歸零的那一刻,當前線程將被阻塞,直到資源被另一個線程釋放。必須通過構造函數設置權限參數的數量。 您需要單獨選擇此參數,具體取決於您的計算機或筆記本電腦的功率。 public class Main {
執行者:可執行對象
Module 3 a ɛto so abien
等級 19,
課堂 5
6.1 可執行對象 所以我們得到了包裹的最大部分。它將描述用於運行異步任務並能夠通過 Future 和 Callable 接口獲取結果的接口,以及用於創建線程池的服務和工廠:ThreadPoolExecutor、ScheduledPoolExecutor、ForkJoinPool。 為了更好地理解,讓我們對接口和類進行一些分解。 6.2 可執行對象的實現 Future 是獲取異步操作結果的絕佳接口。這裡的關鍵方法是 get 方法,它會阻塞當前線程(有或沒有超時),直到另一
執行人服務
Module 3 a ɛto so abien
等級 19,
課堂 6
執行者 Executor是實現Runnable任務啟動的類的基接口。這有助於添加任務以及如何啟動它。 ExecutorService是一個接口,它擴展了Executor 的屬性,它描述了用於運行Runnable或Callable任務的服務。提交方法接受Callable或Runnable形式的任務作為,並使用 Future 作為返回值,通過它可以得到結果。 invokeAll方法負責執行任務,返回任務列表及其狀態和完成結果。 invokeAny方法負責執行任務,返回成功完成任務
鎖:鎖定對資源的訪問
Module 3 a ɛto so abien
等級 19,
課堂 7
重入鎖 條件- 在鎖中應用條件允許您實現對流訪問管理的控制。鎖定條件是java.util.concurrent.locks中的Condition接口的一個對象。使用Condition對像在很多方麵類似於使用Object類wait/notify/notifyAll,這些方法在前面的主題之一中進行了討論。 Lock是鎖框架,與同步相比,它提供了一種靈活的方法來限制對資源/塊的訪問。使用多個鎖時,釋放順序可以任意,也可以配置。當鎖已經被捕獲時,也有可能處理這種情況。 Reentra
Please enable JavaScript to continue using this application.