gpt4 book ai didi

java - 具有 100k 线程的基于 Java 的服务器能否生存

转载 作者:行者123 更新时间:2023-12-02 04:13:58 25 4
gpt4 key购买 nike

我想在家托管一个应用程序。我的 native :Core i7 2600 4核,8线程,16GB内存光纤:100Mbps

我的目标:100k工作线程,每个线程都有自己的while循环。

我的机器还能生存吗?代码示例:

serversocket obj_sock=new serversocket()
while(true){
new thread(new workerthread(obj_socket.accept());
}

class workerthread implements runnable{
public workerthread(socket sock){
rs=sock.getinputstream()
ws=sock.getoutputstream()
}
public void(run){
while(true){
//do read stream, write stream
}
}
}

附注我跳过了代码中的异常。

最佳答案

我的 64 位 Java 8 上的默认线程堆栈大小是 1M。这意味着 100,000 个线程将需要 100G 的 RAM 才能运行。这是可调的,您可能会低于 16G,但软件需要使用受限堆栈进行更多测试。

操作系统似乎会让您创建那么多线程。

我强烈建议研究事件驱动(即非阻塞)协议(protocol)框架,如 NettyApache MINA实现您的服务器。

关于java - 具有 100k 线程的基于 Java 的服务器能否生存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33514438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com