Allen Holub 指出:Java 執行緒模型是語言最薄弱環節,完全不適合實際複雜程式需求,且非物件導向。雖然 Java 內建支援執行緒,但語法與類庫支援極少,僅適用極小型應用。
run() 過程,缺乏物件、同步/非同步訊息等 OO 概念Active Object: 可接收非同步請求的物件,請求封裝為 Runnable 進入佇列,由單一服務執行緒循序執行,消除大多數同步問題。
Swing/AWT 事件佇列即此模式體現:SwingUtilities.invokeLater() 將 Runnable 送入事件佇列,由事件處理執行緒執行。
將 Active Object 整合進語言核心,借鑑 Intel RMX OS 與 Ada 語言設計。關鍵構想:
$ 前綴避免衝突,如 $task),需編譯器命令列開關支援主流建議僅微調 JLS 修正 JVM 行為模糊處,Holub 主張徹底重構。雖激進,但直擊核心架構缺陷。