Linux學習筆記(06 11)執行緒優先順序

2021-07-03 05:55:16 字數 1908 閱讀 9914

排程策略

posix提供了

int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy);函式來獲取所

使用的排程策略,它們是:sched_fifo, sched_rr 和 sched_other。

可以使用

int sched_get_priority_max(int policy);

int sched_get_priority_min(int policy);

來獲取執行緒執行緒可是設定的最大和最小的優先順序值,如果呼叫成功就返回最大和最小的優先順序值,否則返回-1。

sched_other是不支援優先順序使用的,而sched_fifo和sched_rr支援優先順序的使用,他們分別為1和99,

數值越大優先順序越高。

設定執行緒的優先順序

int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param);

int pthread_attr_getschedparam(const pthread_attr_t *attr, struct sched_param *param);

上面兩個函式分別用於設定執行緒的優先順序,struct sched_param的定義如下

struct sched_param;

執行緒的屬性

執行緒的屬性由pthread_attr_t結構型別表示。

在使用pthread_attr_t之前,需要呼叫pthread_attr_init對其初始化。pthread_attr_init為pthread_attr_t結構裡面的各個屬性設定預設值。程式可以修改這些值,定製執行緒的各個屬性。在使用完pthread_attr_t後,需要呼叫pthread_attr_destroy,完成一些清理工作。

int pthread_attr_init ( pthread_attr_t *attr );

int pthread_attr_destroy ( pthread_attr_t *attr );

獲取和設定pthread_attr_t結構裡面的各個屬性

例:

建立優先順序為50的執行緒。

pthread_attr_t attr;

struct sched_param param;

pthread_attr_init(&attr);

pthread_attr_setschedpolicy(&attr, sched_rr);

param.sched_priority = 50;

pthread_attr_setschedparam(&attr, ¶m);

pthread_create(&threadid, &attr, &threadfunc, null);

pthread_attr_destroy(&attr); 

#include

#include

#include

#include

static int api_get_thread_policy (pthread_attr_t *attr)

return policy;

}static void api_show_thread_priority (pthread_attr_t *attr,int policy)

static int api_get_thread_priority (pthread_attr_t *attr)

static void api_set_thread_policy (pthread_attr_t *attr,int policy)

int main(void)

0611個人筆記

持久化 管理資料 方便查詢 一致性 事務 鎖 併發資料訪問 五類問題 第一類丟失更新 事務a撤銷時,把已經提交的事務b的更新資料覆蓋了 第二類丟失更新 事務a覆蓋事務b已經提交的資料,造成事務b所做的操作丟失 髒讀 a事務讀到了b事務還未提交的資料 不可重複讀 a事務重新讀取前面取到的資料,讀到了b...

linux多執行緒學習筆記

1.乙個程序中的所有執行緒都可以訪問該程序的組成部件,如檔案描述符和記憶體。2.在乙個程序中採用多執行緒程式設計可以改善響應時間和提高系統吞吐量。3.程序的所有資訊對該程序的所有執行緒都是共享的,包括可執行的程式文字,程式的全域性記憶體和堆記憶體,棧以及檔案描述符。4.執行緒id用pthread t...

Linux之執行緒學習筆記

在linuxc中,建立程序fork 建立執行緒pthread creat 使用者在建立程序時,系統要為其分配記憶體空間 段,堆,棧等 建立執行緒不開闢記憶體空間,執行緒是程序中的一條執行路徑,執行緒之間共享程序的記憶體。執行緒是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運...