每个请求架构实现的线程

时间:2014-05-03 01:51:16

标签: java multithreading sockets tcp

我正在尝试构建一个具有TCP连接的多线程服务器,它可以与多个客户端通信并同时传输一些数据。我正在使用Java,Java IO和Java Thread库。我相信我的实现应该构建为“每个请求的线程”模型。任何想法我可以在哪里开始或你可以指导我的教程?

2 个答案:

答案 0 :(得分:1)

随着多线程代码的出现,每个请求模型的线程编写起来非常简单。基本上你需要的是:

  • 线程池

  • 服务器套接字

  • 调度工作线程的主线程

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

答案 1 :(得分:0)

如果您想编写高效的服务器。使用NIO。每个客户一个线程是旧的方式。它的内存/ CPU密集。

见这个。这是一个很好的起点。 http://rox-xmlrpc.sourceforge.net/niotut/

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