pthread_create未定義的引用 學(xué)習(xí)c 多線程編程主要用pthread還是c 11中的thread類?
學(xué)習(xí)c 多線程編程主要用pthread還是c 11中的thread類?主要使用pthread類1。創(chuàng)建一個線程類似于pthread的uuCreate函數(shù),前提是需要引入相應(yīng)的頭文件#include
學(xué)習(xí)c 多線程編程主要用pthread還是c 11中的thread類?
主要使用pthread類
1。創(chuàng)建一個線程
類似于pthread的uuCreate函數(shù),前提是需要引入相應(yīng)的頭文件
#include<pthread。H>
2。對于進(jìn)入線程的回調(diào)函數(shù),通常需要在回調(diào)函數(shù)中寫入死循環(huán)以進(jìn)行某些數(shù)據(jù)處理,等等
void t_u2;callback()]{
]while(true)
{]}
]3。由于線程將訪問相同的數(shù)據(jù)段或內(nèi)存,因此通常需要添加一個互鎖以防止訪問相同的數(shù)據(jù)段
pthreadmutexut mulock
pthreadmutexuuinit(&mulock,NULL)
pthreadmutexulock(&mulock)
pthreadmutexuunlock(&mulock);
4。死循環(huán)將導(dǎo)致崩潰,因此需要在死循環(huán)中添加塊,
pthreaduucondut mucond
pthreaduconduuinit(&mucond,null)
阻塞掛起時調(diào)用:
pthreaduconduwait(&mucond,&mut阻塞喚醒時調(diào)用:
pthread_join的介紹?
使用函數(shù)pthreadujoin等待線程結(jié)束。
頭文件:#include<pthread。H>函數(shù)定義:int pthread_uujoin(pthread_uutthread,void**retval)Description:pthread_uujoin()函數(shù),等待thread指定的線程以阻塞方式結(jié)束。
當(dāng)函數(shù)返回時,將調(diào)用等待線程的資源。
如果線程已結(jié)束,函數(shù)將立即返回。
螺紋指定的螺紋必須是可接合的。
參數(shù):Thread:線程標(biāo)識符,即線程ID,用于標(biāo)識唯一的線程。
Retval:用戶定義的指針,用于存儲等待線程的返回值。
返回值:0表示成功。
如果失敗,則返回錯誤號。
Linux的多線程怎么理解?
例如,有一千塊磚頭要卸載,
單線程是一個人工作。兩條線是兩個人在工作。卸貨時間加倍
四個線程意味著四個人卸貨。卸貨時間快了四倍