初識Linux執行緒

2021-09-01 01:29:59 字數 786 閱讀 7314

linux的執行緒也是曲折的,2.4核心的時候居然執行緒使用程序來實現。不過2.6核心我是沒看到有什麼詭異的了。執行緒是執行緒,程序是程序。

為什麼要執行緒呢?

執行緒的切換,不需要切換程序的上下文,比如n多暫存器值的儲存。所以是輕量級的。速度也更快,但是同時也帶來很多問題,比如同步。

現在讓我們來簡單看看linux的執行緒吧。

下面的程式,通過多執行緒,並且互斥來對乙個變數累加。

#include

#include

#include

#include

#include

#define max 100

pthread_mutex_t mutex; //互斥量

static int count; //需要同步的資料

void err_quit(char *msg)

void *th_incre(void *arg) //乙個執行緒執行的函式

int main(int argc, char *argv)

pthread_mutex_destroy(&mutex);//有初始化,就有銷毀

exit(0);

}

乙個簡單多執行緒程式。並使用了互斥量同步。當然,執行緒還有很多複雜的東西。以後再說。

對了,這裡要說一下,在連線的時候請使用 -lpthread 選項,要載入執行緒庫。

$gcc -g -wall -lpthread -o count th_count.o

併發 執行緒初識

乙個程式同時執行多個任務。通常,每乙個任務稱為乙個執行緒 thread 它是執行緒控制的簡稱。可以同時執行乙個以上執行緒的程式稱為多執行緒程式 multithreaded 那麼,多程序與多執行緒有哪些區別呢?本質的區別在於每個程序擁有自己的一整套變數 而執行緒則共享資料 這聽起來似乎有些風險 的確也...

多執行緒初識

多執行緒cpu 程式 指令集合 程序 程式執行過程 ctrl alt delete 執行緒 指令執行最小單位 執行緒安全 慢 同步 非執行緒安全 執行緒不安全 快 非同步 繼承方式實現多執行緒 執行緒幾種狀態 生命週期 建立狀態 就緒狀態 執行狀態 死亡狀態 掛起狀態 執行緒鎖 互斥鎖 lock i...

初識執行緒池

降低資源消耗 提高響應速度 提高執行緒的可管理性 首先繼承threadpoolexecutor public class poolthread extends threadpoolexecutor public poolthread int corepoolsize,int maximumpools...