Linux下執行緒實現

2021-06-08 15:10:42 字數 1104 閱讀 4227

1.執行緒概述

程序是系統中程式執行和資源分配的基本單位。每個程序有自己的資料段、**段和堆疊段。

執行緒通常叫做輕型的程序。執行緒是在共享記憶體空間中併發執行的多道執行路徑,他們共享乙個程序的資源。

因為執行緒和程序比起來很小,所以相對來說,執行緒花費更少的cpu資源。

2.執行緒建立和退出

在linux中,一般採用pthread執行緒庫實現執行緒的訪問與控制,由posix提出,具有良好的可移植性。

3.函式原型

#include

pthread_create(pthread_t *thread,  pthread_attr_t *attr,void *(*start_routine)(void *),void *arg)

thread:執行緒識別符號

attr:執行緒屬性設定

start_routine:執行緒函式起始位址

arg:傳遞給start_routine的引數

pthread_exit( void *retval )  //執行緒內退出

retval: pthread_exit呼叫者執行緒的返回值,可由其他函式和pthread_join來檢測獲取。

pthread_cancel(pthread_t  thread )  //執行緒外退出

pthread_join( pthread_t th,void  **thread_return )

th:等待執行緒的識別符號

thread_return:使用者定義指標,用來儲存被等待執行緒的返回值

pthread_t pthread_self( void );  獲取當前執行緒id

建立執行緒與主線程通訊例項:

#include #include using namespace std;

//char str[100];//執行緒之間可以通過全域性變數通訊

void *fun(void *arg)//執行緒之間也可以通過引數進行聯絡

執行效果:

列印出hello的同時,還可以繼續輸入普通執行緒想說的話,兩個執行緒併發執行。

Linux下執行緒

此文講述的執行緒為linux下,其執行緒庫函式是由posix標準定義的,稱為posix thread或者pthread。在linux上線程函式位於libpthread共享庫中,因此在編譯時要加上 lpthread選項。建立執行緒 終止執行緒 等待執行緒 三個函式都為pthread.h中定義,其中要注...

linux下執行緒原理及實現

什麼是執行緒池?諸如web伺服器 資料庫伺服器 檔案伺服器和郵件伺服器等許多伺服器應用都面向處理來自某些遠端 的大量短小的任務。構建伺服器應用程式的乙個過於簡單的模型是 每當乙個請求到達就建立乙個新的服務物件,然後在新的服務物件中為請求服務。但當有大量請求併發訪問時,伺服器不斷的建立和銷毀物件的開銷...

linux下執行緒池的實現(c )

2012 12 07 16 11 44 分類 電子安防專案 舉報 字型大小訂閱 參考 autoptr.h created on 2012 12 7 author kym 智慧型指標模板 ifndef autoptr h define autoptr h include template class ...