在保证性能稳定的前提下,一个进程最多可以有多少个线程?

Joan201401 2008-09-04 10:32:34
如题,在保证性能稳定的前提下,一个进程最多可以有多少个线程?
...全文
292 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leo_red 2008-09-08
  • 打赏
  • 举报
回复
学习~~,顶。
我前阵子刚好搞过相关的测试。我代码让启动2000个线程,但是实际上只能启动1986个左右的线程,但是当我修改了代码的部分内容后,可以起1998个。并且不同的机器跑同一个程序,线程数目也不一样。
反正和每个线程工作需要的数据空间大小,机器的配置有关系。
MSDN给出的就是理论上限阿。
Joan201401 2008-09-08
  • 打赏
  • 举报
回复
多谢各位的回复!
pangqi022 2008-09-06
  • 打赏
  • 举报
回复
线程数量太多的话 线程切换会消耗很多时间
所以线程数量不是越多越好的
liyinlei 2008-09-04
  • 打赏
  • 举报
回复
线程数并非越多越好。

理论上一个进程可创建的线程数 受到虚拟内存和线程栈大小的约束,msdn原文如下:
The number of threads a process can create is limited by the available virtual memory. By default, every thread has one megabyte of stack space. Therefore, you can create at most 2028 threads. If you reduce the default stack size, you can create more threads.
awjx 2008-09-04
  • 打赏
  • 举报
回复
这个与硬件条件有直接关系。
yyunffu 2008-09-04
  • 打赏
  • 举报
回复
5楼说的没错。
具体说最多多少线程且能保持程序稳定,这个恐怕不只是程序问题了,与你的使用环境有关系。
要确切知道,大概需要自己反复测试了。
WinEggDrop 2008-09-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 LIFECANNOTBEQUIET 的帖子:]
如题,在保证性能稳定的前提下,一个进程最多可以有多少个线程?
[/Quote]

MSDN
"Remarks
The number of threads a process can create is limited by the available virtual memory. By default, every thread has one megabyte of stack space. Therefore, you can create at most 2,028 threads. If you reduce the default stack size, you can create more threads. However, your application will have better performance if you create one thread per processor and build queues of requests for which the application maintains the context information. A thread would process all requests in a queue before processing requests in the next queue."

windows中在默认堆栈设置下,以及资源足够情况下,一个进程最多可创建2028线程.

Joan201401 2008-09-04
  • 打赏
  • 举报
回复
我说的稳定是,1)保证丢到缓冲区的包都能够成功发送出去,
2)保证程序可以长期运行,即长期不停地发送数据。

是不是可以根据内存的大小来计算大概可以开多少个进程?
blackcat242 2008-09-04
  • 打赏
  • 举报
回复
windows上线程栈需要1M空间,进程最大可以访问2G空间,自己就可以算出来(不过是理论上的)。经验上200以下
Sandrer 2008-09-04
  • 打赏
  • 举报
回复
不只到楼主所说的稳定,是如何定义~

如果说稳定代表程序不崩溃的话,而你的代码又没有错漏
理论上说,只要你的内存足够多,可以开无限个,直到没资源!
pangqi022 2008-09-04
  • 打赏
  • 举报
回复
性能 你的机器条件和同时运行的线程数量 和线程的工作内容
稳定 程同步做的好坏
只要你同步和控制做的好 线程不都同时运行开
进程中客户可用2G 线程默认是 1M

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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