• <sup id="mk476"></sup>
    <dl id="mk476"></dl>
  • <progress id="mk476"><tr id="mk476"></tr></progress>
    <div id="mk476"><tr id="mk476"></tr></div>
    <sup id="mk476"><ins id="mk476"></ins></sup>
  • <progress id="mk476"></progress>
    <div id="mk476"></div>
    <div id="mk476"><tr id="mk476"></tr></div>
  • <div id="mk476"></div>
    <dl id="mk476"><s id="mk476"></s></dl><dl id="mk476"></dl><div id="mk476"></div>
  • <div id="mk476"></div>
    <dl id="mk476"><ins id="mk476"></ins></dl>
    摘要: 單線程就不說了因為簡單,并且 在實際的生產環境中一般必須來說 線程資源都是由線程池提供線程資源的。 線程池的好處 重用存在的線程,減少對象創建、消亡的開銷,性能好 可有效控制最大并發線程數,提高系統資源利用率,同時可以避免過多資源競爭,避免阻塞。 提供定時執行、定期執行、單線程、并發數控制等功能。 閱讀全文
    posted @ 2018-10-01 17:05 愛呼吸的魚 閱讀(193) 評論(0) 編輯
    摘要: 因為下一節會說線程池,要用線程池 那么線程池有個很重要的參數 就是Queue的選擇 常用的隊列其實就兩種: 先進先出(FIFO):先插入的隊列的元素也最先出隊列,類似于排隊的功能。從某種程度上來說這種隊列也體現了一種公平性。 后進先出(LIFO):后插入隊列的元素最先出隊列,這種隊列優先處理最近發生閱讀全文
    posted @ 2018-09-26 19:30 愛呼吸的魚 閱讀(82) 評論(0) 編輯
    摘要: 大部分時候創建線程的2種方式,一種是直接繼承Thread,另外一種就是實現Runnable接口。但是這兩種方式都有一個缺陷就是:在執行完任務之后無法獲取執行結果。 Stream API可以聲明性的通過parallel()與sequential()在并行流與穿行流中隨意切換!閱讀全文
    posted @ 2018-09-24 23:59 愛呼吸的魚 閱讀(187) 評論(0) 編輯
    摘要: ReentrantLock與synchronized的區別 ReentrantReadWriteLock的使用 鎖的選擇閱讀全文
    posted @ 2018-09-24 00:49 愛呼吸的魚 閱讀(106) 評論(0) 編輯
    摘要: AQS全名:AbstractQueuedSynchronizer,是并發容器J.U.C(java.lang.concurrent)下locks包內的一個類。它實現了一個FIFO(FirstIn、FisrtOut先進先出)的隊列。底層實現的數據結構是一個雙向列表。 CyclicBarrier 和 CountDownLatch的比較: CountDownLatch: 一個線程(或者多個), 等待另外N個線程完成某個事情之后才能執行。--> 反正 你執行完 就ok.不能隨意放開 CyclicBarrier: N個線程相互等待,任何一個線程完成之前,所有的線程都必須等待。--> 可以到到某個條件.我放開就行了 CountDownLatch的計數器只能使用一次。而CyclicBarrier的計數器可以使用reset() 方法重置。所以CyclicBarrier能處理更為復雜的業務場景,比如如果計算發生錯誤,可以重置計數器,并讓線程們重新執行一次。 CountDownLatch:減計數方式,CyclicBarrier:加計數方式 信號量(Semaphore),有時被稱為信號燈,是在多閱讀全文
    posted @ 2018-09-22 22:49 愛呼吸的魚 閱讀(98) 評論(0) 編輯
    摘要: 平時大家都會經常使用到 Map,面試的時候又經常會遇到問Map的,其中主要就是 ConcurrentHashMap,在說ConcurrentHashMap.我們還是先看一下, 其他兩個基礎的 Map 類: HashMap 和 TreeMap HashMap: TreeMap: 這個異常意在提醒開發者閱讀全文
    posted @ 2018-09-21 23:11 愛呼吸的魚 閱讀(89) 評論(0) 編輯
    摘要: Map大家族的那點事兒(1) :Map Map大家族的那點事兒(2) :AbstractMap Map大家族的那點事兒(3) :TreeMap Map大家族的那點事兒(4) :HashMap Map 大家族的那點事兒 ( 5 ) :WeakHashMap Map 大家族的那點事兒 ( 6 ) :Li閱讀全文
    posted @ 2018-09-21 22:13 愛呼吸的魚 閱讀(12) 評論(0) 編輯
    摘要: java.util.concurrent是JDK自帶的一個并發的包主要分為以下5部分: 并發工具類(tools) 顯示鎖(locks) 原子變量類(aotmic) 并發集合(collections) Executor線程執行器 我們今天就說說 并發集合,除開 Queue,放在線程池的時候講 先介紹以閱讀全文
    posted @ 2018-09-20 23:33 愛呼吸的魚 閱讀(206) 評論(0) 編輯
    摘要: 不可變類:所謂的不可變類是指這個類的實例一旦創建完成后,就不能改變其成員變量值。如JDK內部自帶的很多不可變類:Interger、Long和String等。可變類:相對于不可變類,可變類創建實例后可以改變其成員變量值,開發中創建的大部分類都屬于可變類。 下面的理解可能會易懂一些: {概念:不可變類的閱讀全文
    posted @ 2018-09-19 21:29 愛呼吸的魚 閱讀(26) 評論(0) 編輯
    摘要: 當訪問共享的可變數據時,通常需要使用同步。一種避免使用同步的方式就是不共享數據。如果僅在單線程內訪問數據,就不需要同步。這種技術被稱為線程封閉。 它其實就是把對象封裝到一個線程里,只有一個線程能看到這個對象,那么這個對象就算不是線程安全的,也不會出現任何線程安全方面的問題。 二 線程封閉技術有一個常閱讀全文
    posted @ 2018-09-19 20:22 愛呼吸的魚 閱讀(108) 評論(0) 編輯
    江苏11选5软件