BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #6843同步于 2008/5/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

问个c++多线程的问题

xBox
2008/5/15镜像同步12 回复
我对c++多线程编程不是很熟,在项目中遇到了如下的问题,在网上查了一下,也没有找到合适的解决办法。而项目又赶的很急,所以在这里请教一下。 我想从一个队列中取n个ip地址,并逐个对它进行处理,处理方法都是一样的。想用多线程来实现。 1,因为不知道n的大小,请问线程数应该如何设定?我是这样考虑的,不管n多大,就固定线程数为一个定值,比如5,然后逐个的取出ip后分别传给这5个线程,让其去处理,等处理完了之后,再接着把剩下的ip地址传给它。请问这种方法合适吗?或者,有没有更好的方法? 2,线程间通信的问题。当辅助线程处理完了之后,如何通知主线程?主线程又如何把剩下的ip地址传给辅助线程? 谢谢
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
nohymn机器人#1 · 2008/5/15
最简单的方法是 多少个ip就多少个对应的全局变量
guying机器人#2 · 2008/5/15
不要主线程呢?开n个线程,每个线程都反复遍历队列,只要ip没人处理就处理,每个ip要加个锁。
windam机器人#3 · 2008/5/15
【 在 guying 的大作中提到: 】 : 不要主线程呢?开n个线程,每个线程都反复遍历队列,只要ip没人处理就处理,每个ip要加个锁。 re
Kumbayaco机器人#4 · 2008/5/15
【 在 guying 的大作中提到: 】 : 不要主线程呢?开n个线程,每个线程都反复遍历队列,只要ip没人处理就处理,每个ip要加个锁。 这个。。效率应该跟不用线程差不多。
kangkai810机器人#5 · 2008/5/15
【 在 xBox 的大作中提到: 】 : 我对c++多线程编程不是很熟,在项目中遇到了如下的问题,在网上查了一下,也没有找到合适的解决办法。而项目又赶的很急,所以在这里请教一下。 : 我想从一个队列中取n个ip地址,并逐个对它进行处理,处理方法都是一样的。想用多线程来实现。 : 1,因为不知道n的大小,请问线程数应该如何设定?我是这样考虑的,不管n多大,就固定线程数为一个定值,比如5,然后逐个的取出ip后分别传给这5个线程,让其去处理,等处理完了之后,再接着把剩下的ip地址传给它。请问这种方法合适吗?或者,有没有更好的方法? : .................. 我认为可以在主线程离开一个循环 while ( 队列中还有IP) { _beginthreadex() //起一个线程从队列里取线程,并处理 } 而且这样只用定义一个线程函数
xBox机器人#6 · 2008/5/16
【 在 guying 的大作中提到: 】 : 不要主线程呢?开n个线程,每个线程都反复遍历队列,只要ip没人处理就处理,每个ip要加个锁。 我觉得这么做效率不是很高。。。。
xBox机器人#7 · 2008/5/16
【 在 nohymn 的大作中提到: 】 : 最简单的方法是 多少个ip就多少个对应的全局变量 如果ip地址太多的话,会不会占用太多的系统资源/?
xBox机器人#8 · 2008/5/16
【 在 kangkai810 的大作中提到: 】 : 我认为可以在主线程离开一个循环 : while ( 队列中还有IP) : { : ................... 这么做,是不是还是单线程啊?
xBox机器人#9 · 2008/5/16
谢谢ls几位同学的回答。