Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每请求线程体系结构实现_Java_Multithreading_Sockets_Tcp - Fatal编程技术网

Java 每请求线程体系结构实现

Java 每请求线程体系结构实现,java,multithreading,sockets,tcp,Java,Multithreading,Sockets,Tcp,我正在尝试构建一个具有TCP连接的多线程服务器,它可以与多个客户机通信并并发地传输一些数据。我正在使用Java、Java IO和Java线程库。我认为我的实现应该构建为“每个请求线程”模型。如果你想写一个高效的服务器,你知道我可以从哪里开始,或者你可以给我一个教程吗。使用NIO。每个客户端一个线程是旧方法。它是内存/cpu密集型的 看这个。这是一个很好的起点。 一旦您理解了NIO并以这种方式实现了服务器,您就会很高兴实现了它。在过去,我将每个客户端一个线程的模型转换为NIO,性能得到了极大的提

我正在尝试构建一个具有TCP连接的多线程服务器,它可以与多个客户机通信并并发地传输一些数据。我正在使用Java、Java IO和Java线程库。我认为我的实现应该构建为“每个请求线程”模型。如果你想写一个高效的服务器,你知道我可以从哪里开始,或者你可以给我一个教程吗。使用NIO。每个客户端一个线程是旧方法。它是内存/cpu密集型的

看这个。这是一个很好的起点。


一旦您理解了NIO并以这种方式实现了服务器,您就会很高兴实现了它。在过去,我将每个客户端一个线程的模型转换为NIO,性能得到了极大的提高。

按照多线程代码的说法,每个请求一个线程的模型编写起来非常简单。基本上你需要的是:

  • 线程池

  • 服务器套接字

  • 分派工作线程的主线程


设置服务器套接字以侦听请求。让主线程运行一个循环。循环等待请求进入,然后从线程池中获取一个线程来服务请求。

Google是你的朋友:我在Google上搜索了ofc,但找不到,谢谢:)问题是“每个请求的线程”而不是“每个客户端的线程”。