动态创建线程

huang1987hh 2012-05-23 08:24:32
我现在想用Socket使一台机器(client)与多台(Server)相连,连接的数目不确定,所以得动态创建线程多个线程,
用hThread[i] = CreateThread (NULL, 0,SocketThread,this,0,(LPDWORD) &dwThreadID[i])这样行不行??
还有就是在SocketThread里面接收Server的数据,这部分函数能不能公用,还是说我得把这部分代码重新copy下??
还有服务器端怎么知道是哪个线程接收,会不会造成干扰??
麻烦各位大神们提供个思路?
...全文
93 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
huang1987hh 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
还有我说的每个线程里面的接收函数基本就是一样的,能不能公用,还是说得复制过来每个线程里面的都一样

当然可以共用,每个线程都有自己的栈


可以共用的。如果你有不同型号的客户端,有不同的业务处理,可以在线程函数里, 根据客户端型号判断一下,或者根据客户端,启用不用的线程函数。
如果线程用完就释放,用线程池比较好。
[/Quote]

我的线程启用后就一直存在 每个线程都一直在接收Server端发过来的数据
也就是我只需要一个线程函数SocketThread 后然系统会创建不同ID号的线程,然后我只需要根据hThread[i]调用不同的线程即可??
96掌门师兄 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
还有我说的每个线程里面的接收函数基本就是一样的,能不能公用,还是说得复制过来每个线程里面的都一样

当然可以共用,每个线程都有自己的栈
[/Quote]

可以共用的。如果你有不同型号的客户端,有不同的业务处理,可以在线程函数里, 根据客户端型号判断一下,或者根据客户端,启用不用的线程函数。
如果线程用完就释放,用线程池比较好。
ouyh12345 2012-05-24
  • 打赏
  • 举报
回复
还有我说的每个线程里面的接收函数基本就是一样的,能不能公用,还是说得复制过来每个线程里面的都一样

当然可以共用,每个线程都有自己的栈
三条猫 2012-05-24
  • 打赏
  • 举报
回复
可以用AfxCreateThread动态创建,把指针记录起来就可以,自己定义一个线程管理类,保存线程指针和他相对应的标示符,然后要用哪个线程,查找他的指针就可以了
huang1987hh 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
一个线程维护一个与服务器端的连接不就行了
[/Quote]

嗯 我就是想那么做,可我上面那样动态创建线程可不可以,
还有我说的每个线程里面的接收函数基本就是一样的,能不能公用,还是说得复制过来每个线程里面的都一样
Eleven 2012-05-23
  • 打赏
  • 举报
回复
一个线程维护一个与服务器端的连接不就行了

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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