多執行緒程式設計 c語言linux下

2021-08-28 15:25:23 字數 1897 閱讀 3430

適用與linux系統

1. 了解基本概念

程序:是計算機所執行的乙個任務的描述,是面向作業系統的最小單位,作業系統能執行很多程序.執行自己寫的乙份**程式,就是讓作業系統執行乙個自己程式的程序.作業系統會根據程式分配定量的資源.

執行緒:面想程式(程序)的,把乙個程式分成多個執行緒可以實現並髮式,多工執行.

2.pthread運用

pthread是c語言中實現多執行緒途徑

先附上一段**

#include

#include

void

pri1()

void

pri2()

intmain()

linux下終端編譯執行多執行緒命令

gcc 1.c -lpthread -o 1.out //假如程式名字是1.cpp,進行編譯./

1.out//執行

說明:

extern int pthread_create __p ((pthread_t *__thread, __const pthread_attr_t *__attr, void (__start_routine) (void *), void *__arg));

建立多執行緒的命令.第乙個引數為多執行緒指標,代表該執行緒識別符號;第二個多執行緒屬性設定,可以為null,第三個為多線成起始執行位址,函式要強制轉換指標型別(void *);第四個引數為執行的引數,注意也是乙個指標型別.

pthread_t ;程序型變數名,類似int,char

pthread_join ((pthread_t id, void **__thread_return));等待乙個執行緒的結束.第乙個引數執行緒表示符,第二個引數為執行緒返回值

void pthread_exit(void *rval_ptr);退出程序(也就是說程式停止類似return);

3. 程式執行緒屬性優先順序簡單講解

參考文章1

參考文章2

執行緒屬性非透明的,只能固定呼叫相關的函式(類似c++的類),先建立屬性變數

執行緒具有屬性,用pthread_attr_t表示,在對該結構進行處理之前必須進行初始化,在使用後需要對其去除初始化。下面是對屬性進行初始話函式pthread_attr_t();函式裡面的引數,後面可以設定預設值

typedef

struct

pthread_attr_t;

對於優先順序,一般說來,我們總是先取優先順序,對取得的值修改後再存放回去。下面附上乙個**

#include

#include

pthread_attr_t attr;

//執行緒屬性變數

pthread_t tid;

sched_param param;

int newprio=20;

pthread_attr_init

(&attr);//

pthread_attr_getschedparam

(&attr,

¶m);//取出優先順序

param.sched_priority=newprio;

//進行修改

pthread_attr_setschedparam

(&attr,

¶m);//設定進去

pthread_create

(&tid,

&attr,

(void

*)myfunction, myarg)

;

注:多執行緒執行的話可能會出現一些問題,我在linux終端執行的很多次的時候會出現幾次有乙個執行緒沒有執行的.具體我就不清楚為啥沒執行了o(∩_∩)o哈哈~

linux下C語言多執行緒程式設計

include include include include define max 10pthread t thread 2 pthread mutex t mut int number 0 i void thread1 printf thread1 主函式在等我完成任務嗎?n pthread e...

linux 下c語言 多執行緒程式設計

最近學習c語言和linux,記錄一下linux中線程的簡單使用 linux執行緒一般用pthread庫建立。pthread是 posix thread的簡稱。在linux的 lib目錄下,可以找到名為libpthread x.x.so x.x是版本號 的庫。下面模擬兩個執行緒 threaddemo....

linux下C語言多執行緒程式設計例項

我們通過建立兩個執行緒來實現對乙個數的遞加。或許這個例項沒有實際運用的價值,但是稍微改動一下,我們就可以用到其他地方去拉。下面是我們的 thread example.c c multiple thread programming in linux author falcon e mail tunzh...