想請教各位一個問題
目前我們用 Freescale 8349 (powerpc) 的平台,搭配 2.6.13 的 kernel 寫程式,不過遇到了一個問題。當我們的執行緒 (thread) 開到 160 個 (含 main thread) 之後,再用 pthread_create 就會傳回 EAGAIN。不管先前開的 thread 有沒有離開 (用 pthread_exit) ,都是一樣的結果。
看了一些 manpage 與 google 之後,我們推測應該是因為 pthread_exit 並不會釋放一些資源。pthread_exit 之後用 pthread_join 可以解決這個問題,但是對我們實際上要解決的問題並沒有幫助,因為 subthread 要 join 必須 parent thread 在那邊等它結束,而我們之所以要開 subthread 就是因為不想等...
不知道有沒有人可以幫忙給我們一點提示,例如:
1. 要如何在 thread 離開之後釋放佔用的資源
2. 這個上限跟哪個系統的限制有關?我們正在實驗調整 NR_OPEN 的值,不知道還有沒有人可以給我們其它的建議?
謝謝!