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...