原创 《Java併發編程的藝術》第一章——併發編程的挑戰

併發編程的挑戰 知識點: 上下文切換死鎖資源限制的挑戰詳解: 1.上下文切換。 併發編程的目的是爲了讓程序運行得更快,但並不是啓動越多的線程就能運行越快。因爲會存在線程上下文切換的消耗。即使對於單核CPU來說,同樣會存在上下文切換。(

原创 《Java併發編程的藝術》第三章——Java內存模型

Java內存模型 知識點: Java內存模型的基礎。 重排序規則。 Java內存模型的設計。 同步原語(synchronized、volatile、final)的內存語義。 1.Java內存模型的基礎。 在命令式編程中,線

原创 《Java併發編程的藝術》第七章——Java中的13個原子操作類

當一個線程更新一個變量時,程序如果沒有正確的同步,那麼這個變量對於其他線程來說是不可見的。我們通常使用synchronized或者volatile來保證線程安全的更新共享變量。在JDK1.5中,提供了java.util.concurren

原创 LeetCode之Two Sum

給定一個數組和一個目標值,返回數組中兩個相加等於該目標值元素的索引。 Example: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 +

原创 《擡頭看看路吧》

有時候我問自己,這是你想要的生活嗎? 有時候我問自己,我究竟怎麼做才能得到我想要的? 有時候我問自己,我該不該走?去哪?做什麼?什麼時候? 對,只是有時候。我太急躁太急躁了。我沒辦法靜靜的坐在那讀一本書,做一件事。每次都是來自狂歡後的反思

原创 《散》

曲終 2016年的平安夜,離你最近的一次,送你回家,你就站在那兒,那麼真實,彷彿觸手可及。該怪我被現實打擊的沒自信?亦或該感謝自己知難而退?失敗者總是這樣,想找個掩飾狼狽不堪的理由。 人散 茫茫人海,終究是互不相見

原创 《Java併發編程的藝術》第六章——Java併發容器和框架

知識點: 1. ConcurrentHashMap 2. ConcurrentLinkedQueue 3. Java中的阻塞隊列 4. Fork/Join框架 1. ConcurrentHashMap Conc

原创 LeetCode之 AddTwoNumbers

給定兩個非空鏈表,數字以相反的順序存儲,每個節點都包含一個數字。將相同位置數字相加,並將其作爲鏈接列表返回。 Example Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -

原创 《Java併發編程的藝術》第四章——Java併發編程基礎

知識點: 線程簡介 。 啓動和終止線程 。 線程間通信 。 1.線程簡介 1.1 什麼是線程? 要想明白什麼是線程,必須先明白什麼是進程!現在操作系統在運行一個程序時,會爲其創建一個進程。而線程是操作系統調度的最小單元,也叫輕量級

原创 《Java併發編程的藝術》第五章——Java中的鎖

知識點: Lock接口。 AQS隊列同步器。 重入鎖和讀寫鎖。 LockSupport工具。 Condition接口。 1.Lock接口。 在Lock接口出現之前,Java程序靠synchronized關鍵字實現鎖功

原创 反轉鏈表Java實現

package cn.wangss.demo; /** * 反轉鏈表 * @author LiPeng * */ public class Test { public static Node Reverse(Node h

原创 《Java併發編程的藝術》第九章——Java中的線程池

Java中的線程池是運營場景最多的併發框架,幾乎所有需要異步或併發執行任務的程序都可以使用線程池,在開發過程中,合理地使用線程池能夠帶來3個好處: - 降低資源消耗:通過重複利用已創建的線程降低線程創建和銷燬造成的消耗。 - 提高

原创 後續博客更新計劃

各位好!今天做一個未來博客更新的計劃,爲了方便工作比較忙的小夥伴,同時也爲了督促自己能及時總結學到的知識(我記憶力很差。。)。有興趣的小夥伴可以持續關注。 《Java併發編程的藝術》系列。目前正在持續更新。 《深入理解JVM虛擬機》系

原创 《忙裏偷閒的悲傷》

序章 有些東西,原以爲自己永不在觸碰,可總是在被生活所戲弄的暈頭轉向之後,一頭撞上,顧不上頭破血流。有些事情,原以爲自己會忘記,可時間的呼喊卻一聲聲的烙印在心底,愈發的清晰。我不斷的告訴自己,這是一個錯誤的決定,可無論如何都掙

原创 Java中的各種鎖

一、公平鎖/非公平鎖 公平鎖是指多個線程按照申請鎖的順序來獲取鎖。 非公平鎖是指多個線程獲取鎖的順序並不是按照申請鎖的順序,有可能後申請的線程比先申請的線程優先獲取鎖。有可能,會造成優先級反轉或者飢餓現象。 對於Java Reentran