程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 一起talk C栗子吧(第一百零九回:C語言實例--線程創建與結束二)

一起talk C栗子吧(第一百零九回:C語言實例--線程創建與結束二)

編輯:關於C語言

一起talk C栗子吧(第一百零九回:C語言實例--線程創建與結束二)



各位看官們,大家好,上一回中咱們說的是線程創建與結束的例子,這一回咱們繼續說該例子。閒話休提,言歸正轉。讓我們一起talk C栗子吧!

看官們,我們在上一回中介紹了線程相關函數的用法,這一回中,我們將使用具體的實例來說明如果使用這些函數來操作線程。

下面是詳細的操作步驟

1.定義並且實現線程執行的函數,在該函數中使用pthread_exit函數結束線程; 2.在當前進程中使用pthread_create函數創建線程; 3.在當前進程中使用pthread_join函數等待線程結束,並且獲取線程結束時的狀態;

看官們,正文中就不寫代碼了,詳細的代碼放到了我的資源中,大家可以下載使用。

在程序中,當前的進程是主函數main所在的進程,當前的線程就是我們在main函數中使用pthread_create函數創建線程。

在代碼中我們定義了兩個全局變量

一個用來保存線程函數的狀態; 一個是線程函數的參數;
int status;
char param[] = "Thread function param";

我們在線程函數中修改了線程函數的狀態,把它從初始值0修改成3.下面是線程函數的具體代碼:

void *thread_func(void *param)
 {
    printf("this is the function,it is running normally .");
    printf("and the param is: %s \n",(char *)param);

    printf("The old status is %d \n",status);
    status = 3; // change the status;

    pthread_exit(&status); // end the thread
 }

下面是程序的運行結果,請大家參考:

Create a thread 
this is the function,it is running normally .and the param is: Thread function param 
The old status is 0 
thread function running finished and the status is :3   //在線程函數中修改了狀態值

各位看官,關於線程創建與結束的例子咱們就說到這裡。欲知後面還有什麼例子,且聽下回分解 。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved