任何一門(mén)支持多線程的語(yǔ)言中,多線程是都是一個(gè)讓人又愛(ài)又恨的東西。Java的多線程相對(duì)而言比其它語(yǔ)言要簡(jiǎn)單一點(diǎn),如果不是開(kāi)發(fā)框架類或者系統(tǒng)級(jí)的程序,也許很少會(huì)碰到要明確碰到Java的多線程API,但事實(shí)上不等于你不用注意多線程安全的問(wèn)題,尤其當(dāng)你在開(kāi)發(fā)Web程序的時(shí)候,在類中使用了靜態(tài)屬性(static fields)而不僅僅是對(duì)象屬性(instance fields)的時(shí)候,如果在壓力測(cè)試或者提交給用戶使用的時(shí)候,發(fā)生了一些不可重現(xiàn)的錯(cuò)誤或者數(shù)據(jù)混亂的時(shí)候,那往往要查查這些使用了靜態(tài)屬性的類是否是多線程安全的了。當(dāng)然,如果你專注于開(kāi)發(fā)Web應(yīng)用,并且很少涉及框架或核心模塊的開(kāi)發(fā),那也就基本上知道synchronized的關(guān)鍵字的應(yīng)用就可以了。這也許就是Java多線程相對(duì)其它語(yǔ)言中多線程要簡(jiǎn)單一點(diǎn)的原因。
當(dāng)然,這次我打算比較深入地來(lái)了解了解一下Java多線程開(kāi)發(fā)的其它一些內(nèi)容,那么找一本好的書(shū)是一個(gè)比 較好的開(kāi)始。關(guān)于Java多線程開(kāi)發(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)條目。
這幾本書(shū)的封面如下,相關(guān)書(shū)的介紹可去
Amazon查看一下:




