原创 《java多線程編程核心技術》核心筆記(三) Lock的使用

【Lock】 Lock lock = new ReentrantLock(); lock.lock()就是持有了對象監視器 其他線程只有等待鎖的釋放。 在使用notify()/notifyAll()方法進行通知時,被通知的線程是由JVM隨

原创 《java多線程編程核心技術》核心筆記(一)

線程具有優先級 線程的優先級具有繼承特性。被調用者繼承調用者的優先級 優先級高的線程 絕大部分會現執行 方法內的變量是線程安全的。 多個線程訪問同一個對象的同步方法時,一定是線程安全的。 synchronized取得的是對象鎖 多個線程

原创 Java中公平鎖與非公平鎖的區別

所謂公平鎖指的是哪個線程先運行,那就可以先得到鎖。非公平鎖是不管線程是否是先運行,都是隨機獲得鎖的。 看下代碼就清楚了。 <strong>package FairAndUnFailLock; public class TestMain

原创 多線程經典之生產者與消費者

<strong>package PAndC; public class C { private Service service; public void eat(Service service) throws Interrupted

原创 史上最簡單的策略模式詳解

策略模式定義了一系列的算法,並將每一個算法封裝起來,而且使它們還可以相互替換。策略模式讓算法獨立於使用它的客戶而獨立變化。 策略模式中需要三個角色: —抽象策略角色: 策略類,通常由一個接口或者抽象類實現。 public inter

原创 史上最簡單的單例模式詳解

單例模式:只給外界提供一次資源,優點兩個。 1. 效率高 2. 有安全保障 單例模式有兩種分別爲懶漢式和餓漢式 懶漢式 public class LazyMethod {private LazyMethod() {}static La

原创 《java多線程編程核心技術》核心筆記(二)

【線程的通信】 只能在同步方法或同步塊中調用wait() 方法 方法notify()也需要在同步方法或者同步代碼塊中調用 notify()方法通知一個線程 notifyAll()可以使正在等待隊列中等待統一共享資源的全部線程從等待狀態退出

原创 停止線程的兩種方式(異常和Return)

package ExceptionBreak2; public class TestMain { public static void main(String[] args) throws InterruptedException