首页| 论坛| 消息

回复: QThread 创建100个线程就可以,创建1000个就提示QThread::start: Failed to create thread
#6 [sevencat 07-05 16:07]
可以试试异步http,你用的同步的需要很多线程。可以试试像libcurl的multi接口或者是
http://stackoverflow.com/questions/2251361/boost-asio-based-http-client-library-like-libcurl
像这里提到的一些异步库。
#7 [sevencat 07-05 16:07]
还有libserf这种。
#8 回 sevencat 的帖子 [wangjiaooo 07-05 17:58]
sevencat:还有libserf这种。(2016-07-05 16:07)
主要是想做用qt做一个压力测试的工具。
#9 [zhang2349 07-07 09:22]
32位程序的内存不够这么多线程用
#10 [stlcours 07-07 15:50]
WINDOWS操作系统中可以允许最大的线程数

默认情况下,一个线程的栈要预留1M的内存空间

这个问题的产生是因为windows32位系统,一个进程所能使用的最大虚拟内存为2G,而一个线程的默认线程栈StackSize为1024K(1M),这样当线程数量逼近2000时,2000*1024K=2G(大约),内存资源就相当于耗尽。

http://www.cnblogs.com/lancidie/archive/2011/12/15/2289337.html

但是据我观察,一个进程所能用的最大虚拟内存为1.47G,而且QT程序和Delphi都是如此,所以应该是普遍现象。这样说来,最多创建1400个左右的线程,不知道为什么你的程序1000个线程就崩溃了,这中间有400的差距,差距并不小,还希望严查。

<< 1 2 >> (2/2)

回复 发表
主题 版块