2012-04-07 52 views
0

我有我們要在3臺服務器上部署的聊天服務器應用程序。聊天應用程序使用了很多多線程。Java主題:在Windows和Linux上

基本上我必須決定哪些操作系統我應該爲這3臺服務器。所以我想知道Linux和Windows如何處理java線程顯着。有什麼不同?誰創建操作系統線程?他們分配什麼內存?

如果在將來的範圍內可擴展性和集羣哪個選項更好?

+0

這功課嗎? – 2012-04-07 12:42:44

回答

1

linux和windows如何處理java線程的區別。

Java的美妙之處在於你並不在乎。他們只是工作。但是,如果您真的好奇,現代JVM會將線程處理委託給操作系統。所以它更像是一個操作系統問題,而不是Java。

有什麼區別?

參見上文。 Java在這裏沒有什麼可做的。這是關於在主機操作系統中如何實現線程化的。

誰創建操作系統線程?

JVM要求OS創建它們,並在Java Thread對象和本機線程之間提供一個薄包裝。

他們分配什麼內存?

每個線程都有自己的堆棧(請參閱參考資料-Xss JVM選項)。所有線程也共享相同的堆空間。

2

如果在將來的範圍內可擴展性和聚類哪個選項更好?

可擴展性和集羣是最有可能不是由JVM,也不由底層操作系統的代碼的內部設計而受到阻礙。並且不需要深入探究代碼,所有關於此的聲明都只是熱門噪音,而不是深刻的陳述。

但是Java的好處在於:它可以在兩個平臺上運行,而無需更改代碼。因此,您可以做的最好的做法是:在同一硬件上對兩個操作系統進行基準測試(但不要使用任何類型的虛擬化!),併爲您的目的使用最佳的操作系統。