各位看官們,大家好,上一回中咱們說的是線程創建與結束的例子,這一回咱們繼續說該例子。閒話休提,言歸正轉。讓我們一起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 //在線程函數中修改了狀態值
各位看官,關於線程創建與結束的例子咱們就說到這裡。欲知後面還有什麼例子,且聽下回分解 。