每个客户一个线程是答案吗?

时间:2013-08-11 12:30:33

标签: java multithreading client-server

我一直在研究多线程编程的一些研究,例如this academic webpage,并且已经注意到为连接到给定服务器的每个客户端创建一个Thread非常流行。事实上,我发现了一些样本客户端 - 服务器程序就是这样做的。 (我试图采纳这个想法,但现在,我有点怀疑。)根据Java:如何编程,建议我使用ExecutorService创建和管理Thread自程序员无法预测系统实际调度Thread的时间,尽管创建并启动了线程的顺序。


我打算做什么

如前所述,我正在创建一个为每个客户端创建Thread的服务器。客户端将向我发送数据,Thread将获取数据,将其存储在文件中,并记录数据。


我的问题

使用ExecutorService创建Thread(并管理它们!)与为每个客户提供Thread实际上相同,但更易于管理吗?此外,它是否会消除由着名的“每个客户端一个线程”的想法引起的开销?

1 个答案:

答案 0 :(得分:1)

  

使用ExecutorService来创建线程(并管理它们!)实际上与给每个客户端一个线程有效,但更易于管理?

  

此外,它是否会消除由着名的“每个客户端一个线程”的想法引起的开销?

没有。开销通常是根据使用线程池不会更改的活动线程数。