java-學習篇-併發容器和框架(java.util.concurrent)

簡介

JDK 1.5 由大神 Doug Lea 推出併發包 java.util.concurrent 來簡化併發處理。

接口

  • Executor
  • ExecutorService
  • ScheduledExecutorService
  • Future
  • ThreadFactory
  • BlockingQueue:阻塞隊列

ConcurrentHashMap

  • 多線程環境下,HashMap 進行put操作會引起死循環
  • HashTable 容器使用synchronized來保證線程安全,但在線程競爭激烈的情況下HashTable的效率非常低下。因爲當一個線程訪問HashTable的同步方法,其他線程也訪問HashTable的同步方法時,會進入阻塞或輪詢狀態。
  • ConcurrentHashMap 分段鎖技術可有效提升併發訪問率

ConcurrentLinkedQueue

阻塞隊列

阻塞隊列常用於生產者和消費者的場景,生產者是向隊列裏添加元素的線程,消費者是從隊列裏取元素的線程。
阻塞隊列

  • ArrayBlockingQueue:基於數組實現的有界阻塞隊列。
  • LinkedBlockingQueue:基於鏈表實現的有界阻塞隊列。
  • PriorityBlockingQueue
  • DelayQueue
  • SynchronousQueue
  • LinkedTransferQueue:基於鏈表組成的無界阻塞隊列。
  • LinkedBlockingDeque
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章