對(duì)于并發(fā)編程奏候,除了操作系統(tǒng)課上學(xué)的那點(diǎn)知識(shí)循集,我的實(shí)踐很少。
本科時(shí)的實(shí)踐蔗草,一個(gè)是用在聊天小程序上咒彤,一個(gè)線程收,一個(gè)線程發(fā)咒精;還有是寫界面程序時(shí)镶柱,GUI單獨(dú)一個(gè)線程。僅此而已模叙。
后來(lái)接觸node.js 和redis, 了解了一些事件驅(qū)動(dòng)的單線程并發(fā)模型歇拆。對(duì)于并發(fā)編程,比如如何用好多線程范咨、鎖故觅、同步之類的,也挺好奇的渠啊,哈逻卖,我覺(jué)得這是一個(gè)提高自己的好方向。
第一本看的書是《Seven Concurrency Models in Seven Weeks》英文版PDF昭抒,即《七周七并發(fā)模型》, 互動(dòng)出版網(wǎng)上也有中文翻譯版賣评也。(嘿嘿炼杖,在互動(dòng)出版網(wǎng)上買了我的第一本計(jì)算機(jī)書,《算法導(dǎo)論》)
這本書還是蠻不錯(cuò)的盗迟,起碼給了我一個(gè)基本認(rèn)識(shí)坤邪,還接觸了一點(diǎn)函數(shù)式編程語(yǔ)言Clojure,認(rèn)識(shí)了一點(diǎn)go罚缕、erlang的特性艇纺。
具體內(nèi)容就不說(shuō)了,感興趣可以看看邮弹。這里列一下章節(jié)目錄:
- Introduction
- Threads and Locks
- Functional Programming
- The Clojure Way—Separating Identity from State
- Actors
- Communicating Sequential Processes
- Data Parallelism
- The Lambda Architecture
每章分為3Day, 一周黔衡。
第二本書是實(shí)習(xí)時(shí)開(kāi)始看的,只看了一半腌乡,還在看盟劫,叫《Java.Concurrency.in.Practice》。
據(jù)說(shuō)這書經(jīng)典与纽,但是我看文字太多了侣签,圖比較少,似乎不太直觀急迂。此書談到的問(wèn)題還是很實(shí)用的影所,包含Java的內(nèi)存模型,什么線程安全僚碎、內(nèi)存可見(jiàn)性猴娩、同步方式、線程池勺阐、阻塞中斷等等卷中,還有 java.util.concurrent包里很多類的使用方法等等。
推薦:
并發(fā)編程網(wǎng) http://ifeve.com/
InfoQ: http://www.infoq.com/cn
很多知識(shí)知道是知道一點(diǎn)皆看,但是沒(méi)有去用仓坞,總徘徊在門外。只有心里有興趣腰吟,有很大疑惑无埃,或者需要的時(shí)候才會(huì)去看。
有相關(guān)項(xiàng)目毛雇,一邊做一邊學(xué)嫉称,沒(méi)事看看java.util.concurrent里一些類的實(shí)現(xiàn)方式,設(shè)計(jì)思路灵疮,也蠻不錯(cuò)的织阅。