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