请教:TCP服务端,是为每个请求开一个线程还是其他的处理方式?

xlyyc 2005-03-21 11:36:53
怎么做才可以效率高一些呢?
...全文
386 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlyyc 2005-03-21
  • 打赏
  • 举报
回复
结贴!
007remember 2005-03-21
  • 打赏
  • 举报
回复
一般情况下软件实现都是采用多线程来处理,在TCP服务端每次请求创建一个socket对象,产生一个线程。结束后,gc清理对象,回收资源。

如果硬件解决的话,能多装cpu就多装一个
晨星 2005-03-21
  • 打赏
  • 举报
回复
连接数不会很多,可以对每一个连接开一个线程。
数据处理并不复杂,可以有一个线程负责接受连接并给他们排队,然后另一个线程负责每次取出一个,处理一个,删除一个。
最好是一个线程负责接受并排队,一组线程(比如8个)负责处理。
后两种情况注意操作的同步。

注意,“多线程”的意义在于一个线程在等待时,另外的线程可以工作,假如你的数据处理过程中并没有什么可能产生等待的动作(比如数据库操作由于可能导致磁盘I/O动作,致使线程等待),那么多线程处理数据可能只会增加系统调度的负担而不会提高性能。
xlyyc 2005-03-21
  • 打赏
  • 举报
回复
自己顶

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧