Java高並發程式設計

來源:互聯網
上載者:User

標籤:skiplist   object類   發包   join   死結   操作   tle   cto   無鎖   

一、並行世界

  摩爾定律的失效,2004年秋季,Intel宣布徹底取消4GHz計劃,CPU向多核心的發展,頂級電腦科學家唐納德丶爾文丶克努斯評價:在我看來,這種現象(並發)或多或少是由於硬體設計者已經無計可施導致的,他們將摩爾定律失效的責任推脫給軟體開發人員。

  1、幾個概念

  同步和非同步:

  並發與並行:都表示多個任務同時執行,但並發偏重於多個任務交替執行。

  臨界區:即共用的資料

  阻塞和非阻塞:

  死結、饑餓和活鎖:死結為互不讓行,饑餓為一直拿不到資源,活鎖為一直撞到

  2、並發層級

   由於臨界區的存在,多線程之間的並發必須得到控制。根據控制的並發策略,分為阻塞、無饑餓,無障礙,無鎖,無等待    5種

  

  3、Java語言相關:JMM(Java記憶體模型)

  JMM中的關鍵技術點都是圍繞著多線程的原子性、可見度和有序性來建立的

    (1)、原子性:操作不可中斷

    (2)、可見度:當一個線程修改了某個共用變數的值時,其他線程是否立即知道這個修改。

    (3)、有序性:程式執行時,可能會進行指令的重排來達到最佳化效果,但在多線程中,由於線程的相互影響,重新排序的線程會打亂其他的線程的執行結果。

 

二、Java並行  1、進程與線程

  進程是電腦中的程式關於某資料集合上的一次運動活動,是系統進行資源分派的基本單位。進程是程式的基本執行實體,進程是線程的容器。

  2、線程的狀態轉換

  Thead類方法:start() 開啟線程,run()線程執行實體,sleep() 睡眠線程不會釋放資源,yield() 讓出CPU,join() 等待線程運行結束,suspend() 掛起,resume() 重啟

  Object類方法:wait() 釋放對象監聽器,線程進入阻塞狀態;notify() 隨機喚醒一個,notifyAll() 喚醒所有。wait,notify,notifyAll 要在Synchronize同步塊中出現,因為其也會出現並發問題

  3、volatile

  volatile關鍵字告訴虛擬機器要主要不要隨意變動最佳化目標指令,對JMM中有序性。但通過volatile是無法保證原子性操作的。

三、Java並發包

  0、並發集合簡介

    ConcurrentHashMap:高效並發HashMap,安全執行緒

    CopyOnWriteArrayList:在讀多寫少的場合,這個List效能非常好,遠遠浩宇Vector,都是安全執行緒

    ConcurrentLinkedQueue:高效並發隊列,使用鏈表實現安全執行緒

    BlockingQueue:一個JDK內部通過鏈表、數組等實現的阻塞 介面

    ConcurrentSkipListMap:跳錶的實現,這是一個Map,使用跳錶的資料結構進行快速尋找

  1、BlockingQueue

    此介面是一個安全執行緒的 存取執行個體的隊列。使用情境

    BlockingQueue通常用於一個線程生產對象,而另外一個線程消費這些對象的情境。

 

  2、HashMap、HashTable、ConcurrentHashMap對比

  HashMap 線程不安全,HashTable,ConcurrentHashMap安全執行緒

  ConcurrentHashMap 採用鎖分段技術比HashTable更加高效

四、並行模式與演算法  1、單例模式  2、不變模式  3、生產者消費者  4、Future模式

  。。。。

Java高並發程式設計

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.