[英]JVM + Linux + Intel's Hyperthreading =
我注意到JVM線程由於某些原因在Linux下作為進程運行(如果我錯了,請糾正我)。 此外,事實上英特爾的超線程僅為屬於同一進程的兩個線程提供了額外的並行化。
這是否意味着單個多線程JVM程序不會從Linux下的超線程中獲利,因為它的線程不是來自CPU的線程“觀點”?
Linux中的調度程序不會區分進程和線程。 clone
系統調用定義的進程可以共享一系列資源。 通常使用的線程和進程只是常用配方的名稱。
如果您將線程視為JVM中的進程,那么這只是命名法的混合。 通過通常的定義,如果進程共享一個虛擬地址空間,那么它們就是進程中的“線程”。
無論使用何種術語,所有硬件調度都將受益於超線程。 同樣完全公平,超線程不允許您並行運行更多線程:它使上下文切換更快,從而為進程提供更多的運行時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.