ClassLoader
摘要: 詳細解釋classloader的加載機制 閱讀全文
posted @ 2008-10-15 21:04 rainman 閱讀(302) | 評論 (0) 編輯
隨筆 - 4, 文章 - 10, 評論 - 2, 引用 - 0
|
10 2008 檔案正確使用 Volatile 變量
摘要: java? 語言包含兩種內在的同步機制:同步塊(或方法)和 volatile 變量。這兩種機制的提出都是為了實現代碼線程的安全性。其中 Volatile 變量的同步性較差(但有時它更簡單并且開銷更低),而且其使用也更容易出錯。在這期的 Java 理論與實踐 中,Brian Goetz 將介紹幾種正確使用 volatile 變量的模式,并針對其適用性限制提出一些建議。
閱讀全文 posted @ 2008-10-06 21:30 rainman 閱讀(216) | 評論 (0) 編輯 ThreadLocal與synchronize
摘要: Java良好的支持多線程。使用java,我們可以很輕松的編程一個多線程程序。但是使用多線程可能會引起并發訪問的問題。synchronized和ThreadLocal都是用來解決多線程并發訪問的問題。大家可能對synchronized較為熟悉,而對ThreadLocal就要陌生得多了。
并發問題。當一個對象被兩個線程同時訪問時,可能有一個線程會得到不可預期的結果。 閱讀全文 posted @ 2008-10-06 12:13 rainman 閱讀(749) | 評論 (1) 編輯 使用dom4j解析XML
摘要: dom4j 是一種解析 XML 文檔的開放源代碼 XML 框架。本文介紹如何使用包含在 dom4j 中的解析器創建并修改 XML 文檔。
dom4j API 包含一個解析 XML 文檔的工具。本文中將使用這個解析器創建一個示例 XML 文檔。清單 1 顯示了這個示例 XML 文檔,catalog.xml 閱讀全文 posted @ 2008-10-05 21:30 rainman 閱讀(1383) | 評論 (0) 編輯 再談ReentrantLock
摘要: 重入鎖(ReentrantLock)是一種遞歸無阻塞的同步機制。以前一直認為它是synchronized的簡單替代,而且實現機制也不相差太遠。不過最近實踐過程中發現它們之間還是有著天壤之別。
以下是官方說明:一個可重入的互斥鎖定 Lock,它具有與使用 synchronized 方法和語句所訪問的隱式監視器鎖定相同的一些基本行為和語義,但功能更強大。ReentrantLock 將由最近成功獲得鎖定,并且還沒有釋放該鎖定的線程所擁有。當鎖定沒有被另一個線程所擁有時,調用 lock 的線程將成功獲取該鎖定并返回。如果當前線程已經擁有該鎖定,此方法將立即返回??梢允褂?isHeldByCurrentThread() 和 getHoldCount() 方法來檢查此情況是否發生。 閱讀全文 posted @ 2008-10-03 17:55 rainman 閱讀(3966) | 評論 (0) 編輯 Java 理論與實踐: 流行的原子
摘要: 在 JDK 5.0 之前,如果不使用本機代碼,就不能用 Java 語言編寫無等待、無鎖定的算法。在 java.util.concurrent 中添加原子變量類之后,這種情況發生了變化。請跟隨并行專家 Brian Goetz 一起,了解這些新類如何使用 Java 語言開發高度可伸縮的無阻塞算法。您可以在本文的 論壇中與作者或其他讀者共享您對本文的看法。(也可以通過單擊文章頂部或者底部的 討論鏈接來訪問討論。) 閱讀全文
posted @ 2008-10-03 14:35 rainman 閱讀(241) | 評論 (0) 編輯 實現 Java 多線程并發控制框架
摘要: Java 提供了語言級別的線程支持,所以在 Java 中使用多線程相對于 C,C++ 來說更簡單便捷,但本文并不是介紹如何在 Java 中使用多線程來來解決諸如 Web services, Number crunching 或者 I/O processing 之類的問題。在本文中,我們將討論如何實現一個 Java 多線程的運行框架以及我們是如何來控制線程的并發同步以及順序執行的。 閱讀全文
posted @ 2008-10-02 23:12 rainman 閱讀(633) | 評論 (1) 編輯 ByteArrayOutputStream和ByteArrayInputStream詳解
摘要: ByteArrayOutputStream類是在創建它的實例時,程序內部創建一個byte型別數組的緩沖區,然后利用ByteArrayOutputStream和ByteArrayInputStream的實例向數組中寫入或讀出byte型數據。在網絡傳輸中我們往往要傳輸很多變量,我們可以利用ByteArrayOutputStream把所有的變量收集到一起,然后一次性把數據發送出去 閱讀全文
posted @ 2008-10-01 23:39 rainman 閱讀(19670) | 評論 (0) 編輯
|
|