Linux下CMake編譯鏈接線程庫以及線程綁定方式
CMake編譯鏈接線程庫
1. 設(shè)置鏈接選項(xiàng)
使用 CMake 編譯程序時,需要設(shè)置鏈接選項(xiàng)來鏈接 pthread 庫。
在 CMakeLists.txt 文件中添加鏈接選項(xiàng),即在add_executable()下面添加以下代碼將 pthread 鏈接庫添加到目標(biāo)可執(zhí)行文件中:
target_link_libraries(target_name pthread)
target_name為目標(biāo)可執(zhí)行文件的名稱。
2. 進(jìn)行編譯
使用make命令進(jìn)行編譯即可。
線程綁定
程序中使用多線程時,通常會將線程指定到某個CPU上運(yùn)行,這樣可以減少競爭,提高程序應(yīng)用性能。但是linux下和windows的寫法不太一樣,下面就總結(jié)一下在linux下的線程綁定方法。
主要使用pthread_setaffinity_np()函數(shù)將線程綁定到指定的CPU,該函數(shù)需要傳入線程ID和一個CPU集合參數(shù),其中CPU集合參數(shù)表示要使用的CPU編號。
具體步驟如下:
1. 添加頭文件
#include <pthread.h>
2. 定義線程執(zhí)行函數(shù)
void *thread_func(void *arg)
{
// 線程執(zhí)行的任務(wù)
// ...
}
3. 創(chuàng)建線程
pthread_t thread_id; pthread_create(&thread_id, NULL, &thread_func, NULL);
4. 設(shè)置CPU集合
cpu_set_t cpuset; CPU_ZERO(&cpuset); CPU_SET(cpu_id, &cpuset);
5. 線程綁定到指定CPU
pthread_setaffinity_np(thread_id, sizeof(cpuset), &cpuset);
6. 等待子線程執(zhí)行完畢
pthread_join(thread_id, NULL);
注:上述中cpu_id為綁定的CPU編號,即 0,1,2...
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
ubuntu中swap(虛擬內(nèi)存)設(shè)置方法
這篇文章主要介紹了ubuntu中swap(虛擬內(nèi)存)設(shè)置方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
Linux系統(tǒng)中CPU占用率較高問題排查思路與解決方法
這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)中CPU占用率較高問題排查思路與解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Linux具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Linux中g(shù)it用https連接時不用每次輸入密碼的方法
這篇文章主要給大家介紹了關(guān)于Linux中g(shù)it使用https連接時不用每次輸入密碼的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06

