[問題] 請問pthread的問題

看板LinuxDev作者 (...)時間16年前 (2009/04/27 13:58), 編輯推噓5(509)
留言14則, 5人參與, 最新討論串1/2 (看更多)
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

04/27 14:03, , 1F
請問錯誤的訊息是啥?
04/27 14:03, 1F

04/27 14:04, , 2F
我是用pthread_create的回傳值去判斷的...
04/27 14:04, 2F

04/27 14:05, , 3F
create成功的話是0 失敗就非0.大概都300條左右會失敗
04/27 14:05, 3F

04/27 14:14, , 4F
thread 數目有上限沒錯
04/27 14:14, 4F

04/27 14:15, , 5F
這種設計方式最好採用一開始就開一個 thread, 但是裡面的
04/27 14:15, 5F

04/27 14:15, , 6F
執行的 function 是可以改變的
04/27 14:15, 6F

04/27 14:15, , 7F
來取代一直 create thread 的 overhead
04/27 14:15, 7F

04/27 14:18, , 8F
喔喔!感謝C大 那請問要怎麼改變其執行的function呢...
04/27 14:18, 8F

04/27 14:35, , 9F
一般就用 mutex or semaphore 來鎖住一個 function ptr
04/27 14:35, 9F

04/27 14:35, , 10F
要他做的時候, 先填好 function ptr, 再解鎖就可以了
04/27 14:35, 10F

04/27 14:36, , 11F
很多實作方式, 看你怎麼作
04/27 14:36, 11F

04/27 14:37, , 12F
恩...大概懂了 謝謝C大指教!!
04/27 14:37, 12F

04/27 16:02, , 13F
User thread 一般是 16K, root 沒有上限. 不過 16K 很大了
04/27 16:02, 13F

05/08 02:23, , 14F
調整stack size(讓同時可用多), 設定thread屬性為分離
05/08 02:23, 14F
文章代碼(AID): #19zKbhVI (LinuxDev)
討論串 (同標題文章)
文章代碼(AID): #19zKbhVI (LinuxDev)