jollen.org

Jollen 的 Blog
Jollen's email: jollen # jollen.org
more:  Jollen's Training

[多核心課程紀錄] 多核心軟體開發的關鍵:Thread Object Model

.作者:jollen/
.日期:November 11, 2011 4:11 PM


關於Java virtual machine的Thread object model,理論上的做法是「一個Thread object連繫(Binding)到一個native thread」。從multi-core的角度來看,這是一個很理想的做法,實務上是否有採用這種Thread object model的Java virtual machine呢?答案是,有的;這取決於virtual machine與作業系統的設計。

JDK6搭配Ubuntu 8.04的環境,以及Android 2.3搭配MagicLego的kernel來看,都是上述的thread model。當然,這裡只是以我自已目前使用中的開發環境當例子,不僅只於這二個環境。

為什麼一個Thread object連繫一個Native thread是比較好的做法,適合應用在multi-core的場合,這涉及到多核心的kernel scheduling技術,在後續的文章裡再做討論。基本上,只要您的系統是屬於上述的Thread object model,未來都能提供一個良好的多核心軟體開發環境。

應用程式到框架,框架透過JNI來到C/C++底層,Thread object與Native thread是一對一關係時,作業系統再將指定的Native thread指派到另外一個處理器,接下來就可以得到這樣的效果:Thread object被指派到另外一個處理器了。這就是為什麼應用程式的設計,以及底層的軟體系統,決定了系統是否能實現「多核心運算」的原因。

Tags:

純手工打造說明:技術專欄文章為 Jollen 原創,內容皆為人工撰寫,無 AI 生成。轉載請註明出處與作者,並全文引用。轉載時請在文章開頭或結尾明顯處註明「本文出處:https://www.jollen.org,已取得原作者同意並授權使用。」
訂閱電子報:不定期 Jollen's Blog 精選文章隨 Moko365 電子報寄送;請透過 Moko365 電子報訂閱(可隨時取消)。

Copyright(c) 2001–2011 www.jollen.org. All rights reserved.
Last update: 2026-07-22