Linux下執行緒的啟動 取消 終止

2021-10-08 19:45:38 字數 1841 閱讀 8968

#pragma once

#include

#include

#include

using

namespace std;

class

cthread

private

: pthread_t m_pid;

};

#include

"thread.h"

int a =20;

int cthread::

start()

void

* cthread::

threadproc

(void

* pparam)

//在棧上分配記憶體

void

* cthread::

threadproc_1

(void

* pparam)

//在棧上分配記憶體

void

* cthread::

threadproc_2

(void

* pparam)

cout <<

"i am new thread"

<< endl;

sleep(1

);}}

//在堆上分配記憶體

void

* cthread::

threadproc_3

(void

* pparam)

cout <<

"i am new thread"

<< endl;

sleep(1

);}}

// 全域性變數

void

* cthread::

threadproc_4

(void

* pparam)

cout <<

"i am new thread"

<< endl;

sleep(1

);}}

void cthread::

run()}

/*執行緒停止函式:

1- pthread_cancel();執行緒的取消並不是實時的,而是有一定的延時,需要等待執行緒到達某個取消點(檢查點),

pthread_cancel()可以取消同乙個程序中其他執行緒

2- pthread_exit() :終止的執行緒可以呼叫pthread_exit()來終止自己

3- 需要從終止的執行緒中return

如**threadproc_1-4測試所示

*/void cthread::

stop()

else

cout <<

"thread is return,thread id: "

<< m_pid <<

"return code:null\n"

<}

#include

"thread.h"

intmain()

pthread_t tid;

void

* ret;

tid = cthread.

getthreadid()

; cout <<

pthread_join

(tid,

&ret)

; cout <<

"return value: "

<<*(

(int

*)ret)

<< endl;

/*int count = 1;

while (1)

*/return0;

}

Linux下執行緒

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

Linux下執行緒的操作

01 7 27 上午 10 39 13 介紹在linux下執行緒的建立和基本的使用。linux下的執行緒是乙個非常複雜的問題,由於我對執行緒的學習不時很好,我在這裡只是簡單的介紹執行緒的建立和基本的使用,關於執行緒的高階使用 如執行緒的屬性,執行緒的互斥,執行緒的同步等等問題 可以參考我後面給出的資...

Linux下執行緒實現

1.執行緒概述 程序是系統中程式執行和資源分配的基本單位。每個程序有自己的資料段 段和堆疊段。執行緒通常叫做輕型的程序。執行緒是在共享記憶體空間中併發執行的多道執行路徑,他們共享乙個程序的資源。因為執行緒和程序比起來很小,所以相對來說,執行緒花費更少的cpu資源。2.執行緒建立和退出 在linux中...