pthread 多執行緒

2021-10-09 20:18:51 字數 968 閱讀 2747

多執行緒程式指的是在同乙個程式中多個執行流併發執行,它們共享程序的同乙個位址空間,分別完成相應的任務,並通過共享位址空間等方式完成執行緒間通訊,cpu按照時間片輪轉等方式對執行緒進行切換和排程。

通常而言,執行緒共享的程序資源包括:

linux中線程的建立依賴於lpthread.so 庫,建立乙個thread的函式原型為:

pthread_create (thread, attr, start_routine, arg)
其引數的具體含義:

而終止執行緒採取 pthread_exit()    顯示的結束當前執行緒

main末尾新增pthread_exit()那麼其他執行緒將根據情況執行完剩下的任務,否則其它執行緒將更隨main執行緒結束

案例:

#include#include#includeusing namespace std;

void* func(void* threadid)

{ int id=*((int*)threadid);

cout<

g++ pthread_test.cpp -lpthread

編譯後執行結果如下:

可以看到 main執行緒  各個建立的子執行緒 交替執行主線程結束以後,子執行緒仍然在執行

linux在建立新執行緒時,預設新建立的執行緒位於乙個原先程序的clone()拷貝程序之下,並且這兩個程序共享相同的位址空間。

pthread_join  插隊  使得乙個執行緒插入到另乙個指定的執行緒中,等待對方執行緒執行完成後,再進行當前執行緒。

乙個典型的場景:   主線程通過pthread_join等待其子執行緒執行完畢後,自身再關閉

pthread建立多執行緒

include include include include include include include include include include include tinyxml tinyxml.h include include include include define macxm...

Linux 多執行緒 pthread

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

多執行緒pthread使用

pthread create 標頭檔案 include 原型 int pthread create pthread t tidp,const pthread attr t attr,void start rtn void void arg 作用 建立乙個執行緒 返回值 執行緒建立成功返回0,建立失敗...