一個線程可以包含多個進(jìn)程 一個進(jìn)程最多可以同時創(chuàng)建多少個線程?
一個進(jìn)程最多可以同時創(chuàng)建多少個線程?這個問題是一個系統(tǒng)性的問題。在現(xiàn)代操作系統(tǒng)中,有一種說法,進(jìn)程是資源管理的最小單元,線程是調(diào)度的最小單元。但在Linux中,這句話在某些地方需要考慮。創(chuàng)建新線程時,
一個進(jìn)程最多可以同時創(chuàng)建多少個線程?
這個問題是一個系統(tǒng)性的問題。在現(xiàn)代操作系統(tǒng)中,有一種說法,進(jìn)程是資源管理的最小單元,線程是調(diào)度的最小單元。但在Linux中,這句話在某些地方需要考慮。
創(chuàng)建新線程時,它將占用系統(tǒng)資源(與創(chuàng)建進(jìn)程的效果相同,如占用PID)和進(jìn)程內(nèi)資源(如線程堆棧將占用VMA)。如果這兩個資源中的任何一個超過標(biāo)準(zhǔn),則創(chuàng)建線程將失敗。
在默認(rèn)配置下,在32位操作系統(tǒng)中,一個進(jìn)程最多只能創(chuàng)建300個線程,因?yàn)槊總€線程堆棧占用8m,300個線程堆棧占用了近3G的內(nèi)存,并且進(jìn)程的虛擬空間已滿,因此創(chuàng)建新線程失敗。
沒有足夠的信息來判斷具體問題。