當前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習 > 講師博文 > 進程中創(chuàng)建線程
前段時間在講IO進程這門課時,想到在進程中可以創(chuàng)建線程,那一個進程多可以創(chuàng)建多少個線程呢?于是我用下面的代碼做了驗證:
經(jīng)過編譯運行得到的結(jié)果是:n = 382,通過驗證結(jié)果可以看到:一個進程多可以創(chuàng)建382個線程,按照進程的用戶空間3g來算,每個線程開辟的堆?臻g大概為8M,(也可以通過命令ulimit –s來查看線程棧大小,以 Kbytes 為單位。)它的空間是不會被回收的,跟函數(shù)不同(線程相當于函數(shù),但這里是跟函數(shù)的不同),所以這就需要我們?nèi)藶榈娜セ厥。當在線程中創(chuàng)建大小為9M的數(shù)據(jù)時,會出現(xiàn)段錯誤。
那么問題又來了,每個線程創(chuàng)建的這8M的空間可以修改嗎?如何修改呢?
顯而易見,答案是肯定的,那怎么修改呢?我通過下面的代碼進行了修改:
在函數(shù)pthread_attr_setstacksize中可以根據(jù)自己的需求修改線程的堆?臻g大小。