鍍金池/ 問答/C  物聯(lián)網(wǎng)  Linux/ 不使用pthread庫實(shí)現(xiàn)多線程

不使用pthread庫實(shí)現(xiàn)多線程

如題,沒有pthread的lib庫,能否實(shí)現(xiàn)Linux C語言多線程,多任務(wù)?。?/p>

回答
編輯回答
祈歡

創(chuàng)建內(nèi)核級線程linux有個系統(tǒng)調(diào)用叫clone(),具體用法man 2 clone

你用他創(chuàng)建一個和父進(jìn)程共享頁表,進(jìn)程組,獨(dú)立堆棧的子進(jìn)程就行了,這個子進(jìn)程其實(shí)就是內(nèi)核級線程?,F(xiàn)在的pthread的內(nèi)核線程就是這樣實(shí)現(xiàn)的。

其實(shí)pthread_create(), fork()背后調(diào)用的都是clone()

至于用戶級線程,別考慮,那玩意是個天坑,調(diào)用系統(tǒng)調(diào)用都會導(dǎo)致整個進(jìn)程阻塞.

2018年8月18日 23:44