Linux程式設計筆記(第12章 POSIX執行緒)

2021-06-22 22:06:59 字數 1383 閱讀 8886

*  執行緒定義

執行緒是乙個程序內部的乙個控制序列。所有的程序都至少有乙個執行執行緒。當在乙個程序中建立乙個新執行緒時,新的執行執行緒將擁有自己的棧(因此也有自己的區域性變數),但與它的建立者共享全域性變數、檔案描述符、訊號處理函式和當前目錄狀態。

*  執行緒介面

1>建立執行緒:

#include int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);
2>結束執行緒:

#include void pthread_eixt(void *retval);
3>等待執行緒:

#include int pthread_join(pthread_t th, void **thread_return);

4>獲取執行緒id:

#include pthread_t pthread_self(void);
5>設定執行緒狀態為unjoinable

#include int pthread_detach(pthread_t thread);
6>傳送終止訊號給執行緒

#include int pthread_cancel(pthread_t thread);

*  執行緒同步

1>訊號量

#include int sem_init(sem_t *sem, int pshared, unsigned int value);/*初始化訊號量*/

int sem_wait(sem_t *sem);/*訊號量減1*/

int sem_post(sem_t *sem);/*訊號量加1*/

int sem_destroy(sem_t *sem);/*銷毀訊號量*/

2>互斥量

#include int pthread_mutex_init(pthread_mtex_t *mutex, const pthread_mutexattr_t *mutexattr);/*初始化互斥量*/

int pthread_mutex_lock(pthread_mutex_t *mutex);/*互斥量加鎖*/

int pthread_mutex_unlock(pthread_mutex_t *mutex);/*互斥量解鎖*/

int pthread_mutex_destroy(pthread_mutex_t *mutex);/*銷毀互斥量*/



Linux程式設計 摘要(第1,2章)

linux程式設計 1.程式設計開發基本知識 page1 33 幫助命令 man gcc info gcc gcc help 編譯命令 gcc o file.c 編譯檔案打包為庫檔案 ar crv libfoo.a bill.o fred.o 程式 標頭檔案 庫檔案 靜態庫。庫檔案,是一些預先編譯好...

程式設計珠璣第12章

正文 如何生成0 n 1內的m個隨機整數 1 方法一 比如要從5個數里選出2個數,第乙個數的概率是2 5,第二個數的概率是1 4,然後是0 3 那麼現在已經很清楚了。可以寫 如下 for int i 0 i n i if rand n i m 2 方法二 可以用乙個set,每生成乙個隨機,就去set...

程式設計珠璣筆記 第12章 取樣問題

整理了這一章提到的幾個演算法,其中蓄水池演算法書中沒有寫,這裡放在一起比較一下,出了方法2是c 的 其它都是python的實現。問題 程式的輸入包括兩個整數m和n,其中m 1 以特定概率順序選擇每乙個數 如果要從r個剩餘的整數中選出s個,則以s r的概率選擇剩餘整數中的第乙個整數,然後遞迴處理剩下的...