June 08, 2006

GNU Classpath 引入 JDK 1.5 全新的並行機制

葉秉哲博士在兩年前的 [Sun 2004 年 Java2 專業技術大會] 精湛地解說 [JDK 1.5 全新的並行機制],很多與會的開發者則因這個場次而釐清 Java 同步觀念,可惜我當時沒參加,這裡節錄議程介紹,回顧一下:
    JDK 1.5 新增的各種功能當中,全新的並行機制是較少人知曉的一環。但正如此機制主要設計者 Doug Lea 所言:只要你的程式會用到 wait/notify/notifyAll、synchronized、Thread 等功能,都該考慮改用新引進的 java.util.concurrent 系列設施。

    究竟這只是廣告詞呢,還是真有其事?

    此套件自 1998 年公開發表 1.0 版起,歷經數年的實戰考驗,孵出了一本書,訂為 JSR 166,進而成為 JDK 1.5 的一員。它涵蓋較先進的執行緒管理、鎖定、並行通訊及控制等功能,也針對既有的容器類別修整一番。

    本講座先介紹 Java 並行程式的原理,探討傳統方式的限制,再以實例逐一示範新的解決方案能在便利、效率、安全上帶來什麼樣的提升。
為了 JDK 1.5 (Java 5) 種種大幅度的改進,Free Java 的核心計畫 GNU Classpath 做了許多因應,比方說 Generics branch 就專注於 JDK 1.5 generics 與 ABI 的部份,而全新的 Java concurrent model,也就是 [JSR 166],也是一項重點。GNU GCC Java language frontend mainatiner - Tom Tromey - 日前提交一份 RFC: [ import jsr166],試著將 jsr166 reference implementation 給 import 到 GNU Classpath,這使 java.util.concurrency 得以被實做。JSR 166 RI 是由 Java Concurrency 權威 Doug Lea 所設計與實做,授權為 Public Domain,原始程式碼可參考 [jsr166 reference::CVS],目前看來沒有授權上的疑慮,而且也移除 sun.* classes 的相依性,看來好戲要登場了 :-)
由 jserv 發表於 June 8, 2006 11:49 PM
迴響

您好!看了許多您的文章,了解您對Java相當的了解。現行小弟正在尋找能使用於Embedded System上的Java(運行於Linux系統上),請您能給我點意見。

請問現行的Free Java裏,有哪幾個專案對Java 5.0的支援最好(當然最好是百分之百)。如果使用於Embedded System並需要使用Java 5.0的API(主要用於Web Service),你建議使用GCJ或Kaffe?還是其它?

這個專案[url]https://wiseman.dev.java.net/[/url]強調必須使用J2SE 5.0+,小弟正在了解Kaffe是否能完全相容於j2SE 5.0中。若您能給小弟點意見,我想應該會很有幫助,謝謝。

morchaos 發表於 February 13, 2007 01:50 PM

To morchaos,

考慮到 web service 與 Java 1.5 相容性,建議用 GCJ,比方說 XWT 就有成功案例,請見: https://www.javaeye.com/a/9490.html

Good Luck!

jserv 發表於 February 14, 2007 09:12 AM
發表迴響









記住我的資訊?