请教用ServerSocket什么情况下需要用多线程?

54thb 2005-04-05 09:34:31
麻烦具体点
...全文
270 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
netsys2 2005-04-21
  • 打赏
  • 举报
回复
如果你现在的应用能够处理及时,就不一定要用多线程,

对于单CPU来说,多线程的效率没有单线程高。

在下面的情况下可以使用多线程:

1)你有多块CPU
2)你的应用中,单线程不能有效地处理所有应用,而实际上网卡、CPU等还有很多空闲
3)你有一个或者几个事务非常耗时间,而同时你希望应用程序还能处理其它的事务。

并不是多用户就必须用多线程,一般来说,每个用户用一个线程来管理是比较直观的,但
必须注意到,线程的频繁建立、挂起、唤醒、终止非常耗费资源,因此才有所谓“线程池”
的技术。

因此我建议你:

1)如果你的客户量数少,每个客户的流量和事务小,直接用单线程处理,简单,可靠性高。
2)如果你的客户量数少,每个客户的流量和事务大,对每个客户直接开个线程处理
3)如果你的客户量数多,每个客户的流量和事务小,用线程池
4)如果你的客户量数多,每个客户的流量和事务大,用多CPU的主机
5)如果你的客户量数巨多,每个客户的流量和事务大,用负载均衡技术
NetSpider9804040 2005-04-20
  • 打赏
  • 举报
回复
对,若你的server可能有多个用户用的话,最好就用多线程!
Lonelywolf1899 2005-04-20
  • 打赏
  • 举报
回复
多用户就要多线程吧
纪俊 2005-04-19
  • 打赏
  • 举报
回复
需要继续执行后续但不与当前任务执行结果相关的任务时可以考虑
happyct 2005-04-19
  • 打赏
  • 举报
回复
多用户通讯时,采用Blocking模式下

当你学习多线程时

当你用其发送接收文件时
constantine 2005-04-19
  • 打赏
  • 举报
回复
没事想用也可以
象indy的本身就是多线程的,不是说要怎么样才用
netsys2 2005-04-19
  • 打赏
  • 举报
回复
当前台反映后台速度太慢,而后台CPU又没有使用到100%时,就用多线程。
inmeginer 2005-04-19
  • 打赏
  • 举报
回复
我认为,这个是根据自己的实际需要来定的,不是必须要选择哪一种。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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