0

我有聊天服务器应用程序,我们将在 3 个服务器上部署它。聊天应用程序使用了大量的多线程。

基本上我必须决定我应该为这 3 台服务器使用哪个操作系统。所以我想知道linux和windows如何独特地处理java线程。有什么区别?谁创建操作系统线程?他们分配了什么内存?

如果将来范围可扩展性和集群化哪个选项更好?

4

2 回答 2

2

如果将来范围可扩展性和集群化哪个选项更好?

可伸缩性和集群最有可能受到代码的内部设计的阻碍,而不是受到 JVM 或底层操作系统的阻碍。在不深入研究代码的情况下,每条关于此的声明都只是热噪声,而不是深刻的声明。

但是 Java 的好处是:它可以在两个平台上运行而无需更改代码。因此,您可以做的最好的事情是:在同一硬件上对两个操作系统进行基准测试(但不要使用任何类型的虚拟化!)并为您的目的使用最好的一个。

于 2012-04-07T12:59:16.547 回答
1

linux和windows如何区别处理java线程。

Java 的美妙之处在于你并不在乎。他们只是工作。但如果你真的很好奇,现代 JVM 将线程处理委托给操作系统。所以它更多的是操作系统问题而不是 Java。

有什么区别?

看上面。Java 在这里没什么可做的。它是关于如何在主机操作系统中实现线程。

谁创建操作系统线程?

JVM 要求操作系统创建它们,并在 JavaThread对象和本机线程之间提供一个瘦包装器。

他们分配了什么内存?

每个线程都有自己的堆栈(参见-XssJVM 选项)。此外,所有线程共享相同的堆空间。

于 2012-04-07T12:48:24.580 回答