国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

java多線程編程實例 學(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。對于進入線程的回調(diào)函數(shù),通常需要在回調(diào)函數(shù)中寫入死循環(huá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,&muo)阻塞喚醒時調(diào)用:

pthreaducondsingnal(&muo)這一點毫無疑問,因為線程鎖定是資源密集型的

!那么,如何避免鎖的性能下降呢?

1、從業(yè)務(wù)上避免大量鎖結(jié)構(gòu)

!2. 使用ThreadLocal,可以保證每個線程中的數(shù)據(jù)不會互相污染

!3. 如果讀多寫少,請使用讀寫鎖

!4. 自旋鎖將挑戰(zhàn)CPU,盡管它是一個線程時間很少的鎖

!5. 鎖的粒度應(yīng)該盡可能?。嚎梢栽诜椒ㄖ械逆i不應(yīng)該占用整個方法