導航:首頁 > 編程語言 > java7並發編程實戰手冊

java7並發編程實戰手冊

發布時間:2022-06-25 23:29:10

A. java編程有哪幾本書比較適合初學者

對於Java的初學者來說,如果找一本比較合適的入門教材的話,完整地介紹Java的 語法、面向對象和主要的API核心庫等知識,那將對學習起到相當的促進作用。 我個人認為,一些經典的國外教材確實值得推崇,首先推薦要看的是《21天學通Ja va 2》、《循序漸進Java 2教程》、《Java2從入門到精通》等書看起來比較淺顯易 懂,將Java的基本只是都涉及到了,使你在很短的時間內掌握Java的基本內容。 看完這這本書之一以後,你就想對Java全面深入的學習,現在向你推薦《Java大學 教程》、《Java 2編程指南》等書,這幾本書對Java的語法、面向對象的知識和AP I函數庫等介紹的比較詳盡。讓你能夠比較熟練的使用Java來編程,解決一般的問題 。 最後向大家推薦的是《Java2核心技術》,這本書主要講述了Java的核心技術也是J ava的難點之處,具有很高的參考價值,無論是Java的初學者還是Java編程老手,都 能從此書受益。 這時候大家可能會注意到,其中竟然沒有大名鼎鼎的《Thinking in Java》這本書 。其實,這本書主要是從編程思想上來講的,並沒有完整的講述Java的整個體系, 而是一種類似Tips的方法來對Java的知識點進行深入的分析和解釋,就好像C++的經 典教材《C++ Primier》一樣,並不適合作為初學語言的入門教材,蛋是在深入學習 Java的過程中的同時來讀這本書會覺得受益匪淺。 值得一提的是,其實最有實用價值的是JDK-Document(下文中簡稱doc, http://ja va.sun.com/j2se/1.5.0/download.jsp中有離線版下載的,本例中只是列舉了1.5的 doc,在相應的地方可以下載1.4甚至1.3的doc)和Java Tutorial在線教程( http:/ /java.sun.com/docs/books/tutorial/這個是在線查看的,離線版的下載本人目前 還不知道)。在doc中有四個部分API 文檔(對SDK自帶的標准Java API都進行了詳 細的介紹,它是按照package來組織的,詳細介紹了每一個class的繼承關系,介面 的實現情況,以及所有public的屬性和方法,對於每個方法的用途、調用的參數、 參數的類型,返回值的類型、以及方法可能拋出的異常等等)、guide(對一些Jav a技術和概念進行講述)、relnotes(這個介紹新版本的JDK的發布信息以及新特點 )、tooldocs(主要對Java的所有命令進行講述)。Doc是我們每一個Java工作者在 編程時必須的手冊,目前只有英文版,sun中國社區正在進行漢化,相信不久就會出 現中文版的doc了。Tutorial也相當的不錯,主要針對初學者,不過對於其他階段的 Java學習者也有很大的幫助了。 以上主要針對J2SE的學習進行講述的,Java主要有J2SE、J2EE、J2ME三個部分,J2 SE是基礎。當我們對J2SE的學習掌握的差不多的時候,其實我們就會對Java的學習 有自己獨特的體會,就會發現每一個Java技術自己所帶的doc都對我們的學習有很大 的幫助。此外,經常去一些著名的網站上去看看各位網友的作品,對Java學習的心 得,確實對我們有很大提高,這里推薦 http://blog.csdn.net 。經常去圖書館或者 到書店去看看有關Java的書,看看它們是不是自己所需要的,這時候,選擇學習Ja va的書籍就會自己拿主意了。 在上述的一些書籍的介紹中,並非每本書都要看,可根據自己的實際情況進行選擇 ,或者像Java先行者咨詢即可。

B. 《深入理解Java7核心技術與最佳實踐》epub下載在線閱讀,求百度網盤雲資源

《深入理解Java7》(成富)電子書網盤下載免費在線閱讀

資源鏈接:

鏈接:https://pan..com/s/13ZU9-5aFADWYjDFs6R4-pQ

提取碼:g7jx

書名:深入理解Java7

作者:成富

豆瓣評分:7.0

出版社:機械工業出版社

出版年份:2012-5

頁數:450

內容簡介:

《深入理解Java 7:核心技術與最佳實踐》的主要內容可分為三大部分:第一部分是1-6章,全面闡釋Java 7在語法、JVM、類庫和API等方面的所有重要新功能和新特性,掌握這部分內容有助於大幅度提升編碼效率和提高代碼質量;第二部分是7-13章,對JVM、Java源代碼和位元組代碼操作、類載入器、對象生命周期、多線程、並發編程、泛型、安全等Java平台的核心技術進行了深入解析,掌握這部分內容有助於深入理解Java的底層原理;第三部分為第14章,是對Java8的展望,簡要介紹了Java 8中將要增加的新特性。

海報:

作者簡介:

成富 資深Java軟體工程師,有多年Java企業級應用開發經驗,對Java 7和Java平台的各項技術的底層原理有深入透徹的研究。曾就職於IBM中國研發中心,先後在IBM新技術學院和Lotus部門參與了多個重要產品的開發工作,現就職於紐西蘭PropellerHead公司。他是非常受歡迎的技術作家,在IBM developerWorks上發表中英文技術文章近30篇,獲得了其頒發的「極具人氣作者獎」;他還是知名技術網站InfoQ的專欄作家,撰寫了「Java深度歷險」專欄,共發表技術文章10餘篇。此外,他還非常精通HTML 5、CSS 3、JavaScript等Web 2.0核心技術,實戰經驗豐富。

C. 有什麼好的並發書籍推薦

Java並發編程實戰 (豆瓣) (java並發的聖經)
多處理器編程的藝術 (豆瓣) (並發編程的各種演算法,java實現,有點難度)
並發的藝術 (豆瓣) (多核處理器的共享內存模型中的各種演算法)
Java虛擬機並發編程 (豆瓣) (jvm上各種語言的並發比較,如java,scala,clojure)
Java並發編程的藝術 (阿里專家方騰飛寫的一本書)
Java 7並發編程實戰手冊 (豆瓣) (java中的並發編程實踐,屬於API工具書,指南)
Java多線程編程實戰指南(設計模式篇) (豆瓣)
Java多線程編程核心技術 (豆瓣)
Java並發編程:核心方法與框架
實戰Java高並發程序設計
七周七並發模型 (豆瓣) (七種並發模型的比較)
Go並發編程實戰 (豆瓣)
C#並發編程經典實例 (豆瓣)
C#多線程編程實戰 (豆瓣)

D. 學習大數據量,高並發處理應該看什麼書

先學測試吧。不是那種業務功能的測試,是系統的測試。因為要解決大數據量、高並發的問題,我個人的知識與經驗是: 1、先用單機測試。用工具產生大並發量去轟擊伺服器,直至伺服器緩慢,甚至接近崩潰; 3、找到系統瓶頸後,優化,解決這個瓶頸,然後再循環測試。這時你又會發現新的瓶頸,再解決。循環1 - 3步,直到各方面基本平衡為止。 4、當單機無法解決問題的時候,接著開始考慮負載均衡,考慮分布式方案,然後再用 1 - 3 的步驟分析與測試。

E. java多線程編程實戰指南 怎麼樣

Active Object模式簡介
Active Object模式是一種非同步編程模式。它通過對方法的調用與方法的執行進行解耦來提高並發性。若以任務的概念來說,Active Object模式的核心則是它允許任務的提交(相當於對非同步方法的調用)和任務的執行(相當於非同步方法的真正執行)分離。這有點類似於 System.gc()這個方法:客戶端代碼調用完gc()後,一個進行垃圾回收的任務被提交,但此時JVM並不一定進行了垃圾回收,而可能是在gc() 方法調用返回後的某段時間才開始執行任務——回收垃圾。我們知道,System.gc()的調用方代碼是運行在自己的線程上(通常是main線程派生的子 線程),而JVM的垃圾回收這個動作則由專門的線程(垃圾回收線程)來執行的。換言之,System.gc()這個方法所代表的動作(其所定義的功能)的 調用方和執行方是運行在不同的線程中的,從而提高了並發性。
再進一步介紹Active Object模式,我們可先簡單地將其核心理解為一個名為ActiveObject的類,該類對外暴露了一些非同步方法,如圖1所示。
圖 1. ActiveObject對象示例

doSomething方法的調用方和執行方運行在各自的線程上。在並發的環境下,doSomething方法會被多個線程調用。這時所需的線程安 全控制封裝在doSomething方法背後,使得調用方代碼無需關心這點,從而簡化了調用方代碼:從調用方代碼來看,調用一個Active Object對象的方法與調用普通Java對象的方法並無太大差別。如清單1所示。
清單 1. Active Object方法調用示例
ActiveObject ao=...;
Future future = ao.doSomething("data");
//執行其它操作
String result = future.get();
System.out.println(result);

Active Object模式的架構
當Active Object模式對外暴露的非同步方法被調用時,與該方法調用相關的上下文信息,包括被調用的非同步方法名(或其代表的操作)、調用方代碼所傳遞的參數等,會 被封裝成一個對象。該對象被稱為方法請求(Method Request)。方法請求對象會被存入Active Object模式所維護的緩沖區(Activation Queue)中,並由專門的工作線程負責根據其包含的上下文信息執行相應的操作。也就是說,方法請求對象是由運行調用方代碼的線程通過調用Active Object模式對外暴露的非同步方法生成的,而方法請求所代表的操作則由專門的線程來執行,從而實現了方法的調用與執行的分離,產生了並發。
Active Object模式的主要參與者有以下幾種。其類圖如圖2所示。
圖 2. Active Object模式的類圖
(點擊圖像放大)

Proxy:負責對外暴露非同步方法介面。當調用方代碼調用該參與者實例的非同步方法doSomething時,該方法會生成一個相 應的MethodRequest實例並將其存儲到Scheler所維護的緩沖區中。doSomething方法的返回值是一個表示其執行結果的外包裝 對象:Future參與者的實例。非同步方法doSomething運行在調用方代碼所在的線程中。
MethodRequest:負責將調用方代碼對Proxy實例的非同步方法的調用封裝為一個對象。該對象保留了非同步方法的名稱及調用方代碼傳遞的參數等上下文信息。它使得將Proxy的非同步方法的調用和執行分離成為可能。其call方法會根據其所包含上下文信息調用Servant實例的相應方法。
ActivationQueue:負責臨時存儲由Proxy的非同步方法被調用時所創建的MethodRequest實例的緩沖區。
Scheler:負責將Proxy的非同步方法所創建的MethodRequest實例存入其維護的緩沖區中。並根據一定的調 度策略,對其維護的緩沖區中的MethodRequest實例進行執行。其調度策略可以根據實際需要來定,如FIFO、LIFO和根據 MethodRequest中包含的信息所定的優先順序等。
Servant:負責對Proxy所暴露的非同步方法的具體實現。
Future:負責存儲和返回Active Object非同步方法的執行結果。
Active Object模式的序列圖如圖3所示。
圖 3. Active Object模式的序列圖
(點擊圖像放大)

第1步:調用方代碼調用Proxy的非同步方法doSomething。
第2~7步:doSomething方法創建Future實例作為該方法的返回值。並將調用方代碼對該方法的調用封裝為MethodRequest 對象。然後以所創建的MethodRequest對象作為參數調用Scheler的enqueue方法,以將MethodRequest對象存入緩沖 區。Scheler的enqueue方法會調用Scheler所維護的ActivationQueue實例的enqueue方法,將 MethodRequest對象存入緩沖區。
第8步:doSomething返回其所創建的Future實例。
第9步:Scheler實例採用專門的工作線程運行dispatch方法。
第10~12步:dispatch方法調用ActivationQueue實例的dequeue方法,獲取一個MethodRequest對象。然後調用MethodRequest對象的call方法
第13~16步:MethodRequest對象的call方法調用與其關聯的Servant實例的相應方法doSomething。並將Servant.doSomething方法的返回值設置到Future實例上。
第17步:MethodRequest對象的call方法返回。
上述步驟中,第1~8步是運行在Active Object的調用者線程中的,這幾個步驟實現了將調用方代碼對Active Object所提供的非同步方法的調用封裝成對象(Method Request),並將其存入緩沖區。這幾個步驟實現了任務的提交。第9~17步是運行在Active Object的工作線程中,這些步驟實現從緩沖區中讀取Method Request,並對其進行執行,實現了任務的執行。從而實現了Active Object對外暴露的非同步方法的調用與執行的分離。
如果調用方代碼關心Active Object的非同步方法的返回值,則可以在其需要時,調用Future實例的get方法來獲得非同步方法的真正執行結果。
Active Object模式實戰案例
某電信軟體有一個彩信短號模塊。其主要功能是實現手機用戶給其它手機用戶發送彩信時,接收方號碼可以填寫為對方的短號。例如,用戶13612345678給其同事13787654321發送彩信時,可以將接收方號碼填寫為對方的短號,如776,而非其真實的號碼。
該模塊處理其接收到的下發彩信請求的一個關鍵操作是查詢資料庫以獲得接收方短號對應的真實號碼(長號)。該操作可能因為資料庫故障而失敗,從而使整 個請求無法繼續被處理。而資料庫故障是可恢復的故障,因此在短號轉換為長號的過程中如果出現資料庫異常,可以先將整個下發彩信請求消息緩存到磁碟中,等到 資料庫恢復後,再從磁碟中讀取請求消息,進行重試。為方便起見,我們可以通過Java的對象序列化API,將表示下發彩信的對象序列化到磁碟文件中從而實 現請求緩存。下面我們討論這個請求緩存操作還需要考慮的其它因素,以及Active Object模式如何幫助我們滿足這些考慮。
首先,請求消息緩存到磁碟中涉及文件I/O這種慢的操作,我們不希望它在請求處理的主線程(即Web伺服器的工作線程)中執行。因為這樣會使該模塊 的響應延時增大,降低系統的響應性。並使得Web伺服器的工作線程因等待文件I/O而降低了系統的吞吐量。這時,非同步處理就派上用場了。Active Object模式可以幫助我們實現請求緩存這個任務的提交和執行分離:任務的提交是在Web伺服器的工作線程中完成,而任務的執行(包括序列化對象到磁碟 文件中等操作)則是在Active Object工作線程中執行。這樣,請求處理的主線程在偵測到短號轉長號失敗時即可以觸發對當前彩信下發請求進行緩存,接著繼續其請求處理,如給客戶端響 應。而此時,當前請求消息可能正在被Active Object線程緩存到文件中。如圖4所示。
圖 4 .非同步實現緩存

其次,每個短號轉長號失敗的彩信下發請求消息會被緩存為一個磁碟文件。但我們不希望這些緩存文件被存在同一個子目錄下。而是希望多個緩存文件會被存 儲到多個子目錄中。每個子目錄最多可以存儲指定個數(如2000個)的緩存文件。若當前子目錄已存滿,則新建一個子目錄存放新的緩存文件,直到該子目錄也 存滿,依此類推。當這些子目錄的個數到達指定數量(如100個)時,最老的子目錄(連同其下的緩存文件,如果有的話)會被刪除。從而保證子目錄的個數也是 固定的。顯然,在並發環境下,實現這種控制需要一些並發訪問控制(如通過鎖來控制),但是我們不希望這種控制暴露給處理請求的其它代碼。而Active Object模式中的Proxy參與者可以幫助我們封裝並發訪問控制。
下面,我們看該案例的相關代碼通過應用Active Object模式在實現緩存功能時滿足上述兩個目標。首先看請求處理的入口類。該類就是本案例的Active Object模式的客調用方代碼。如清單2所示。
清單 2. 彩信下發請求處理的入口類
public class MMSDeliveryServlet extends HttpServlet {

private static final long serialVersionUID = 5886933373599895099L;

@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//將請求中的數據解析為內部對象
MMSDeliverRequest mmsDeliverReq = this.parseRequest(req.getInputStream());
Recipient shortNumberRecipient = mmsDeliverReq.getRecipient();
Recipient originalNumberRecipient = null;

try {
// 將接收方短號轉換為長號
originalNumberRecipient = convertShortNumber(shortNumberRecipient);
} catch (SQLException e) {

// 接收方短號轉換為長號時發生資料庫異常,觸發請求消息的緩存
AsyncRequestPersistence.getInstance().store(mmsDeliverReq);

// 繼續對當前請求的其它處理,如給客戶端響應
resp.setStatus(202);
}

}

private MMSDeliverRequest parseRequest(InputStream reqInputStream) {
MMSDeliverRequest mmsDeliverReq = new MMSDeliverRequest();
//省略其它代碼
return mmsDeliverReq;
}

private Recipient convertShortNumber(Recipient shortNumberRecipient)
throws SQLException {
Recipient recipent = null;
//省略其它代碼
return recipent;
}

}

F. 自學Java,有哪些書籍推薦

《瘋狂java講義》 這本書深入介紹了java編程的相關方面,這本書的內容有Java基本語法結構、面向對象特徵、集合框架體系、 泛型、異常處理、GUI編程、JDBC資料庫編程等等等。非常齊全,我有全套Java視頻資料

G. 學java用哪本書好

1.《Java從入門到精通(第3版)》

這本書從Java初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Java語言進行程序開發需要掌握的知識。

2.《Java核心技術卷1基礎知識》

Java領域最有影響力和價值的著作之一,與《Java編程思想》齊名。該書根據JavaSE7全面更新,系統全面講解Java語言的核心概念、語法、重要特性和開發方法,包含大量案例,實踐性強。

3.《Java並發編程實戰》

Java並發經典書籍,書中採用循序漸進的講解方式,從並發編程的基本理論入手,逐步介紹了在設計Java並發程序時各種重要的設計原則、設計模式以及思維模式,同時輔以豐富的示例代碼作為對照和補充,使得開發人員能夠更快地領悟Java並發編程的要領,圍繞著Java平台的基礎並發功能快速地構建大規模的並發應用程序。

4.《Java多線程編程核心技術》

資深Java專家10年經驗總結,全程案例式講解。結合大量實例,全面講解Java多線程編程中的並發訪問、線程間通信、鎖等難突破的核心技術與應用實踐。看這本書的朋友們,團長相信只要你們跟著這本書裡面的代碼敲、運行、思考,對於多線程的使用與理解一定會提高一大截。

5.《EffectiveJava(第3版)》

Google首席Java架構師傾情力作,這本書涵蓋Java7、Java8和Java9中語言和庫的各種新特性,可以深入了解Java平台的細微之處。團長個人覺得這本書並不適合入門的小白看,如果有一些Java開發經驗之後,再看這本書的話,才會受益匪淺。

6.《Java編程思想(第4版)》

本書包括操作符、控制執行流程、訪問許可權控制、復用類、多態、介面、通過異常處理錯誤、字元串、泛型、數組、容器深入研究、Iava』UO系統、枚舉類型、並發以及圖形化用戶界面等內容。這些豐富的內容,包含了Java語言基礎語法以及高級特性,適合各個層次的Java程序員閱讀。

7.《Java8實戰》

這本書是將Java8的新特性講解得最全最仔細的,如果你正在使用Java8,那麼一定要讀這本書。

8.《深入理解Java虛擬機第2版》

想要理解Java虛擬機其實並沒有你想像的那麼難,對於一個合格的Java程序員來說這類知識點是必須掌握的。這本書里提供了大量處理各種常見JVM問題的技巧和最佳實踐,還有若干與生產環境相結合的實戰案例。內容豐富,實戰性強。

9.《Spring實戰(第4版)》

《Spring實戰(第4版)》是經典的Spring學習和實踐指南。

全書分為四部分:

第一部分介紹Spring框架的核心知識;

第二部分在此基礎上介紹了如何使用Spring構建Web應用程序;

第三部分告別前端,介紹了如何在應用程序的後端使用Spring;

第四部分描述了如何使用Spring與其他的應用和服務進行集成。

《Spring實戰(第4版)》適用於已具有一定Java編程基礎的讀者,以及在Java平台下進行各類軟體開發的開發人員、測試人員,尤其適用於企業級Java開發人員。本書既可以被剛開始學習Spring的讀者當作學習指南,也可以被那些想深入了解Spring某方面功能的專業用戶作為參考用書。

閱讀全文

與java7並發編程實戰手冊相關的資料

熱點內容
用圖片的地圖再編譯的地方 瀏覽:462
python監控系統進程 瀏覽:236
群暉怎麼取消照片共享文件夾 瀏覽:156
程序員那麼可愛第幾集陸璃懷孕 瀏覽:615
西門子st編程手冊 瀏覽:59
mt4編程書籍 瀏覽:21
單片機模擬實驗設置電壓 瀏覽:948
如何用電腦打開安卓手機內存 瀏覽:860
java數據訪問層 瀏覽:181
代碼優化是編譯程序的必要階段 瀏覽:623
程序員那麼可愛孩子還在嗎 瀏覽:513
以下哪些是資料庫編程技術 瀏覽:164
水冷壓縮冷凝機組 瀏覽:177
小米路由器app怎麼加黑名單 瀏覽:433
證券交易2012pdf 瀏覽:208
單線程和多線程編譯 瀏覽:155
游戲被加密了刪不了怎麼辦 瀏覽:475
二建6米的柱子加密多少箍筋 瀏覽:648
怎麼簡單易懂的了解伺服器 瀏覽:356
mcpe怎麼看伺服器地址 瀏覽:994