繫結執行緒到特定CPU處理器

2021-09-07 08:33:56 字數 920 閱讀 4653

參考這篇文章 

**如下:

#define _gnu_source#include 

#include

#include

#include

#include

#include

void *myfun(void *arg)

cpu_zero(&get

);

if (pthread_getaffinity_np(pthread_self(), sizeof(get), &get) < 0

)

for (j = 0; j < num; j++)

}j = 0

;

while (j++ < 100000000

) }

pthread_exit(null);

}int main(int argc, char *ar**)

pthread_join(tid, null);

return0;

}

這段**將使myfun執行緒在所有cpu中依次執行一段時間,在我的四核cpu上,執行結果為

:system has 4 processor(s)

thread 1095604544 is running in processor 0

thread 1095604544 is running in processor 1

thread 1095604544 is running in processor 2

thread 1095604544 is running in processor 3

在一些嵌入式裝置中,執行的程序執行緒比較單一,如果指定程序執行緒執行於特定的cpu核,減少程序、執行緒的核間切換,有可能可以獲得更高的效能。

cpu執行緒 cpu處理器多執行緒有什麼用

電腦cpu處理器多執行緒有什麼用 執行緒是cpu排程和分配的基本單位。多執行緒決定了cpu單個核心下可以同時處理多少任務而互不干擾。cpu的多執行緒技術可以為運算核心準備更多的待處理資料,減少運算核心的閒置時間,解決了負載均衡問題,充分利用cpu資源,提高cpu的使用率。多執行緒的好處 1 使用多執...

CPU處理器架構

系統有x64,x86與ia 64三種版本之分,分別用於不同的cpu。較老的cpu只能安裝x86版的系統,也就是我們常見的32位系統。因為微軟的緣故,32位系統在過去的很長一段時間內,佔據著桌面計算機的主流地位。64位系統能夠在較新的x86 64架構的cpu上執行。而ia 64則只能執行於intel的...

多執行緒程式設計之執行緒繫結處理器核

出處 linux系統提供api函式sched setaffinity和sched getaffinity用於設定或獲取執行緒的可以使用的cpu核。int sched setaffinity pid t pid,unsigned int cpusetsize,cpu set t mask 這個函式中p...