linux多執行緒pthread使用

2021-10-13 05:42:32 字數 907 閱讀 4790

linux多執行緒pthread使用

標頭檔案pthread.h

pthread_t pthid;

pthread_create(&pthid, null, func, null)建立執行緒。

pthread_join(pthid, null)等待該執行緒執行完畢後再退出,阻塞(執行緒掛起,不再占用cpu)。

pthread_self()可獲得本執行緒的id。%ld

執行緒互斥鎖

pthread_mutex_t mutex1

pthread_mutex_init(&mutex1, null)初始化互斥鎖

pthread_mutex_lock(&mutex1)

//加鎖和解鎖成對出現

pthread_mutex_unlock(&mutex1)

最後要記得銷毀互斥鎖pthread_mutex_destroy(&mutex1)

在linux中線程的本質還是程序

pthread_create(&pthid, null, func, null)對程序的複製。

執行緒同步

pthread_cond_t cond1

pthread_cond_init(&cond1, null) 初始化條件變數

使用條件變數前必須進行加鎖

pthread_mutex_lock(&mutex1)

pthread_cond_wait($cond1, &mutex1) //阻塞,在阻塞的同時要進行解鎖,否則會造成死鎖

pthread_mutex_unlock(&mutex1)

pthread_cond_signal(&cond1) //啟用函式,通知其他程序

pthread_cond_destroy(&cond1) //銷毀

Linux 多執行緒 pthread

1.linux執行緒的發展 早在linux2.2核心中。並不存在真正意義上的執行緒,當時linux中常用的執行緒pthread實際上是通過程序來模擬的,也就是同過fork來建立 輕 程序,並且這種輕程序的執行緒也有個數的限制 最多只能有4096和此類執行緒同時執行。2.4核心消除了個數上的限制,並且...

pthread 多執行緒

多執行緒程式指的是在同乙個程式中多個執行流併發執行,它們共享程序的同乙個位址空間,分別完成相應的任務,並通過共享位址空間等方式完成執行緒間通訊,cpu按照時間片輪轉等方式對執行緒進行切換和排程。通常而言,執行緒共享的程序資源包括 linux中線程的建立依賴於lpthread.so 庫,建立乙個thr...

Linux 多執行緒 pthread庫初探

linux 多執行緒 pthread庫用法 一 linux 執行緒有時候也叫light weight processlwp 輕量級執行緒,是程序的乙個執行流,有自己的執行棧,是作業系統排程的最小單位。多執行緒優勢在於切換開銷小,同程序內通訊方便,涉及io等阻塞性操作時可以單獨開乙個執行緒不阻塞主流程...