原创 高併發編程-07-JDK提供的原子類操作及原理

1,原子類介紹:針對數據類型的操作,JDK提供的原子類來方便我們的線程安全控制。所有的類保存在 java.util.concurrent.atomic 包中基本數據類型 AtomicInteger數組類型 AtomicIntegerArra

原创 高併發編程-06-可見性-volatile

1,volatile的作用volatile是一個輕量級的線程同步機制。它的特性之一,是保證了變量在線程之間的可見性。當然,還有我們之前說的,解決指令重排的問題volatile保證了在多個線程之間是可見的,但不能保證原子性操作當一個線程修改了

原创 高併發編程-01-併發編程的發展歷史

其實,在早期計算機並沒有包含操作系統,這個時候,這個計算機只跑一個程序,這個程序獨享計算機的所有資源,這個時候不存在什麼併發問題,但是對計算機的資源來說,確實是一種浪費。於是,操作系統出現了,操作系統改變了這種現狀,讓計算機可以運行多個程序

原创 夢想領航者

夢想領航者,讓我們揚起風帆,追逐夢想!每個人都有自己的一個夢想,或者是兒時的,或者是現在的,或者是某個不經意的時候被點燃的。夢想可以是遙遠的,也可以是離我們很近的,每一個年輕人都有夢想,他們或許是因爲生活上的壓力,家庭上的壓力而漸漸放棄了自

原创 華人首富李嘉誠 創業奮鬥

李嘉誠談58年的工作歷程,值得學習http://v.youku.com/v_show/id_XNzI3MjM3NDIw.html?tpa=dW5pb25faWQ9MTAyMjEzXzEwMDAwMl8wMV8wMQ

原创 高併發編程專題說明

大家好,併發編程是一個提升程序員level的關鍵專題,本專題會從理論結合實踐逐步深入,儘量用通俗的語言和跑的通的程序來給大家講解,重點每個地方都會形成一個閉環,讓大家真正掌握高併發編程的核心要點,讓我們一起來學習,感受技術的樂趣。對該專題感

原创 高併發編程-08-Lock

1,回顧到目前,我們講了3個跟多個線程操作一個資源的技術點,主要涉及以下幾個點:synchronized:原子性,重量級鎖volatile:可見性,不保證原子性採用JDK提供的原子類2,Lock在JDK1.5後,爲我們提供了Lock接口主要

原创 高併發編程-09-讀寫鎖ReentrantReadWriteLock

1,讀寫鎖的概念我們之前講的鎖是排他鎖或叫互斥鎖而我們今天要講的ReentrantReadWriteLock讀寫鎖兼顧了排他鎖和共享鎖的特性,對於讀的操作採用的是共享鎖,而寫的操作採用的是排他鎖2,讀寫鎖的優勢多個線程讀操作,則採用共享鎖,

原创 高併發編程-03-併發編程存在的風險

多線程的高併發編程提高了我們的CPU利用率及簡化開發模式,但是又同時給我們帶來了風險,使用不當就會有風險,那到底有什麼風險?我們來看看1,線程的安全性問題假設,我現在編寫了一個程序,來保存系統的訪問量,如何實現呢?很簡單,我可以設置一個全局

原创 Java核心技術-01-談談泛型

泛型在實際開發和麪試中都非常重要,所以我們今天來談談這個話題1,什麼是泛型泛型的本質是爲了參數化類型,通過泛型指定的不同類型來控制形參具體限制的類型。舉個例子!我們要定義一個只能存放整數的集合,怎麼寫?List list = new Arr

原创 錄製視頻心得

    最近利用週末的時間,陸陸續續錄製了一些視頻,漸漸有了一些狀態,其實每段視頻都是反覆錄製,因爲總感覺不滿意,但我想後面的視頻會越錄越好。    面對學生講課和麪對屏幕講課的還是有區別的,面對學生可以看到學生的表情,同時你也可以通過身體

原创 高併發編程-01-併發編程的發展歷史

其實,在早期計算機並沒有包含操作系統,這個時候,這個計算機只跑一個程序,這個程序獨享計算機的所有資源,這個時候不存在什麼併發問題,但是對計算機的資源來說,確實是一種浪費。於是,操作系統出現了,操作系統改變了這種現狀,讓計算機可以運行多個程序

原创 高併發編程-05-活躍性問題-死鎖,活鎖,飢餓

死鎖,飢餓,活鎖1,死鎖多個線程,各自佔對方的資源,都不願意釋放,從而造成死鎖工具:使用jconsole可以檢測程序運行的死鎖線程2,飢餓多個線程訪問同一個同步資源,有些線程總是沒有機會得到互斥鎖,這種就叫做飢餓。出現飢餓的三種情況a,高優

原创 高併發編程-04-線程的安全性

之前,我們在前面已經介紹過了線程的安全性,本篇我們將繼續來深挖這個問題,繼續來探討什麼線程安全,原子性及加鎖機制。1,什麼是線程安全?線程安全,有兩個關鍵詞,“共享”和“可變”。共享是指可以被多個線程同時訪問;可變是指變量的值在生命週期內是