任何一門支持多線程的語言中,多線程是都是一個(gè)讓人又愛又恨的東西。Java的多線程相對(duì)而言比其它語言要簡單一點(diǎn),如果不是開發(fā)框架類或者系統(tǒng)級(jí)的程序,也許很少會(huì)碰到要明確碰到Java的多線程API,但事實(shí)上不等于你不用注意多線程安全的問題,尤其當(dāng)你在開發(fā)Web程序的時(shí)候,在類中使用了靜態(tài)屬性(static fields)而不僅僅是對(duì)象屬性(instance fields)的時(shí)候,如果在壓力測試或者提交給用戶使用的時(shí)候,發(fā)生了一些不可重現(xiàn)的錯(cuò)誤或者數(shù)據(jù)混亂的時(shí)候,那往往要查查這些使用了靜態(tài)屬性的類是否是多線程安全的了。當(dāng)然,如果你專注于開發(fā)Web應(yīng)用,并且很少涉及框架或核心模塊的開發(fā),那也就基本上知道synchronized的關(guān)鍵字的應(yīng)用就可以了。這也許就是Java多線程相對(duì)其它語言中多線程要簡單一點(diǎn)的原因。
當(dāng)然,這次我打算比較深入地來了解了解一下Java多線程開發(fā)的其它一些內(nèi)容,那么找一本好的書是一個(gè)比 較好的開始。關(guān)于Java多線程開發(fā)的專著比較有名的大約是《Java Threads, 3rd Edition》和《Java Thread Programming》了,前者基于JDK 1.5(這個(gè)版本對(duì)多線程進(jìn)行了很大的改進(jìn))進(jìn)行介紹,并且指出了與以前版本的區(qū)別;而后者出版于1999年,是基于JDK 1.2進(jìn)行講解的。所以呢,基本上采用第一本為主。同時(shí)也參考一下《Practical Java》和《Effective Java》的相關(guān)條目。
這幾本書的封面如下,相關(guān)書的介紹可去
Amazon查看一下:




