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

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

如題,沒(méi)有pthread的lib庫(kù),能否實(shí)現(xiàn)Linux C語(yǔ)言多線程,多任務(wù)??!

回答
編輯回答
祈歡

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

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

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

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

2018年8月18日 23:44