作者lackofblack (...)
看板LinuxDev
标题[问题] 请问pthread的问题
时间Mon Apr 27 13:58:02 2009
void *func(void *)
{
...
}
while(...)
{
pthread_t thrd;
pthread_create(thrd, NULL, func, NULL);
...
...
pthread_cancel(thrd);
}
------------------------------------------------
以上每跑一阵子之後, pthread_create就会发生错误
请问是不是能create的thread数目有上限呢?
就算把thread cancel掉也没办法吗...
拜托高手帮忙解惑了...小弟新手
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.78.32
1F:推 lungswu:请问错误的讯息是啥? 04/27 14:03
2F:→ lackofblack:我是用pthread_create的回传值去判断的... 04/27 14:04
3F:→ lackofblack:create成功的话是0 失败就非0.大概都300条左右会失败 04/27 14:05
4F:推 CriLit:thread 数目有上限没错 04/27 14:14
5F:→ CriLit:这种设计方式最好采用一开始就开一个 thread, 但是里面的 04/27 14:15
6F:→ CriLit:执行的 function 是可以改变的 04/27 14:15
7F:→ CriLit:来取代一直 create thread 的 overhead 04/27 14:15
8F:→ lackofblack:喔喔!感谢C大 那请问要怎麽改变其执行的function呢... 04/27 14:18
9F:推 CriLit:一般就用 mutex or semaphore 来锁住一个 function ptr 04/27 14:35
10F:→ CriLit:要他做的时候, 先填好 function ptr, 再解锁就可以了 04/27 14:35
11F:→ CriLit:很多实作方式, 看你怎麽作 04/27 14:36
12F:→ lackofblack:恩...大概懂了 谢谢C大指教!! 04/27 14:37
13F:推 richliu:User thread 一般是 16K, root 没有上限. 不过 16K 很大了 04/27 16:02
14F:推 iamron:调整stack size(让同时可用多), 设定thread属性为分离 05/08 02:23