关闭

一个进程中线程的最大个数计算方法

标签: ios开发线程
1433人阅读 评论(2) 收藏 举报
分类:
最近无聊写了个小程序,在主进程中开一个线程,让这个线程不断的开线程,来测试最多能开多少线程。结果每次执行的结果都是2010(加上主线程和另外开的一个线程,一共是2012个线程)。

程序地址如下:

http://feng32.50webs.com/ThreadMark.zip

核心代码如下(C语言的):

C# code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Create threads as many as possible
while(TRUE)
{
    hThread = CreateThread(0, 0, TestThreadProc, 0, 0, 0);
    if( hThread != NULL )
    {
        // ...
        g_arrhThreads[g_nThreads] = hThread;
        g_nThreads += 1;
    }
    else // Error occurred
    {
        // ...
        // Stop Threads
        g_bContinue = FALSE;
        WaitForMultipleObjects(g_nThreads, g_arrhThreads, TRUE, INFINITE);
        break;
    }
    Sleep(0);
}
 
// 线程函数如下
 
DWORD WINAPI TestThreadProc(LPVOID lpParam)
{
    while( g_bContinue )
    {
        Sleep(1);
    }
 
    return 0;
}


问题是:为什么只能开2010个线程?能想办法开更多的线程吗?

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:90594次
    • 积分:1648
    • 等级:
    • 排名:千里之外
    • 原创:73篇
    • 转载:6篇
    • 译文:8篇
    • 评论:15条
    最新评论