有没有必要用多线程?

wx376752150_1 2011-08-05 01:59:27
我要做个服务器,收到一个连接请求,就开辟一个线程,线程的主要任务是从数据库中获取数据(数据量比较大),也就是说io会很长,我想知道,此时用多线程和单线程是不是效率差不多呢?系统在做io的时候是不是由专门的DMA做操作?在做io的时候是不是其他线程阻塞在哪里等着轮到自己做io呢?
...全文
160 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jernymy 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cs_dn_sniper 的回复:]
如果请求比较多(几十个)建议用线程池
如果请求比较少(几个、十几个)建议用多线程
如果请求比较少(1个2个)可以只开一个子线程,设置timeout。
[/Quote]

推荐这个,楼主根据需要不同情况做不同的操作
东莞某某某 2011-08-05
  • 打赏
  • 举报
回复
7# 正解!
friend19871216 2011-08-05
  • 打赏
  • 举报
回复
做连接池,接分
vcf_reader 2011-08-05
  • 打赏
  • 举报
回复
如果线程太多,还要使用完成端口
PG 2011-08-05
  • 打赏
  • 举报
回复
~用~
至善者善之敌 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jackyjkchen 的回复:]
又发一遍?
[/Quote]
我经常发两遍!!
Jerry_Lee01 2011-08-05
  • 打赏
  • 举报
回复
7楼的正解,看具体情况!
晓馨嫣梓 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 freezezdj 的回复:]
又接一遍分。。。
[/Quote]
头次没赶上,赶个二场
tan625747 2011-08-05
  • 打赏
  • 举报
回复
又接一遍分。。。
三文鱼也会飞 2011-08-05
  • 打赏
  • 举报
回复
如果请求比较多(几十个)建议用线程池
如果请求比较少(几个、十几个)建议用多线程
如果请求比较少(1个2个)可以只开一个子线程,设置timeout。

大大啊 2011-08-05
  • 打赏
  • 举报
回复
接受一个请求,就创建一个线程。 请求很多。哪效率也很低吧
冻结 2011-08-05
  • 打赏
  • 举报
回复
又接一遍分。。。
赵4老师 2011-08-05
  • 打赏
  • 举报
回复
楼主双击的速度太慢了吧。(^_^)
jackyjkchen 2011-08-05
  • 打赏
  • 举报
回复
又发一遍?
zyrr159487 2011-08-05
  • 打赏
  • 举报
回复
应该是有必要的,都由主线程做就太夸张了,但是应该控制开辟的线程数
luciferisnotsatan 2011-08-05
  • 打赏
  • 举报
回复
单线程,不就阻塞在那里了。
如果你的服务器一次只接收一个请求,那没必要,如果多个,那就需要了。

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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