天天看點

JAVA并發處理經驗(一)多線程總結一、前言 二、多線程總結

本來沒有準備寫這個的。但是還是為了自己,同時也是為了别人。将我看書獲得的一些體會寫出來,希望有緣分的朋友看得到。這個隻是一些提綱性的東西,本身就是自己看的,估計懂的少了。實在需要,我可以細心講解。在下一步看線程池的時候,我總結一下JDK的一些多線程管理的知識。

前面我們講解了線程多線程:

 * 主要講解了一些鎖定概念,鎖保證了線程的安全;

 * object+synchnozed:wait+notify

 * 線程方法總結:

 * 1\suspend挂起+resume恢複=會産生死鎖

 * 2\join加入目前線程+yield謙讓(暫時放棄)

 * 3\線程組:達到明确知道你的線程屬于哪個組

 * 4\線程優先級别 預設為5,總共為1-10

 * 5\守護線程,在其他線程結束之後,就結束

 * 6\同步關鍵字synchronized

 * 7\線程中的的不安全arraylist與hashmap:arraylist由于過多,list越界;hasmap的連結清單破壞.容易next亂指(都是由于多線程通路引起)

 * 8\java基礎類型被制定就不能修改指:例如Integer

 * JDK線程加鎖總結:

 * 1\synchronized擴充,重入鎖RenntrantLok.重入鎖需要自己控制lock與unlock;

 * 2\reentrantLock的中斷可以避免死鎖

 * 3\RenntacntLock可以使用trylock 可以設定時間等待

 *4\重入鎖的公平鎖

 * 5\重入鎖的好搭檔 condition 的wait與sigal

 * 6\信号量semahpore----準許同時可以通路

 * 7\信号量更新版本 讀寫所ReadWriteLock  寫寫互斥

 * 8\倒計時CountDownLathc-----計數實作任務;(cyclicBarrier循環栅欄)

 * 9線程阻塞-----park與unpark 另一個unpar可以解鎖另一個park