请教一个关于线程管理的问题

大地主刘发财 2012-05-12 07:41:18
最近写个程序C/S的,使用socket连接 客户端在连接时会有个持续线程,这个是固定的,主要是在线监控..当客户端发送数据时会新建一个连接到服务器,执行完了以后就关闭连接.
服务器端每接收到连接后启动一个线程处理,现在有个问题,我该如何统计在线客户端数?
还有如何知道我的服务器启动了多少个线程,以及每个线程的ID,以便控制这些线程?
试过用数组解决,但客户端数量多了以后效率成问题,而且用数组也不好控制.也试过把线程ID写到数据库中,但客户端数量达到60左右的时候数据库内存占用严重..崩溃了 请教高手给个思路,要是能有个例子就更好了 谢谢~!
...全文
113 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大地主刘发财 2012-05-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 1 楼 的回复:

System.Threading.ThreadPool 这个不知道能不能满足你

使用的是.NET 4.0 没有System.Threading.ThreadPool了...
[/Quote]
又找到了...把VS重启一下就能用threadpool了 以前提示错误..谢了
大地主刘发财 2012-05-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

服务端处理好后 就结束线程 不要在那循环着
[/Quote]

每个客户端只有1个线程是循环着的,用来更新在线时间和客户端判断是否掉线.其它线程都是处理完了以后就退出,但有时会来加交换数据,可能会持续一段时间,这个时候我就想统计一下总共运行了多少个线程,若是有些线程卡住了可以通过线程ID来结束它
大地主刘发财 2012-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

System.Threading.ThreadPool 这个不知道能不能满足你
[/Quote]
使用的是.NET 4.0 没有System.Threading.ThreadPool了...
rayyu1989 2012-05-12
  • 打赏
  • 举报
回复
服务端处理好后 就结束线程 不要在那循环着
zhujiawei7 2012-05-12
  • 打赏
  • 举报
回复
System.Threading.ThreadPool 这个不知道能不能满足你

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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