#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
//線程1的啟動函數
void *threaddeal1(void *arg)
{
printf("thread 1 returning\n");
return((void *)1);
}
//線程2的啟動函數
void *threaddeal2(void *arg)
{
printf("thread 2 exiting\n");
pthread_exit((void *)2);
}
//主函數
int main(int argc,char *argv[])
{
int err;
pthread_t threadid1, threadid2;
void *tret;
//創建線程1
err = pthread_create(&threadid1, NULL, threaddeal1, NULL);
if (err != 0) //創建線程1失敗
{
printf("創建線程1失敗,錯誤為: %s\n", strerror(err));
}
//創建線程2
err = pthread_create(&threadid2, NULL, threaddeal2, NULL);
if (err != 0)
{
printf("創建線程2失敗,錯誤為: %s\n", strerror(err));
}
//阻塞線程1
err = pthread_join(threadid1, &tret);
if (err != 0)
{
printf("阻塞線程1失敗,錯誤為: %s\n", strerror(err));
}
//退出并且打印線程1的退出狀態
printf("線程1的退出碼為 %d\n", (int)tret);
//阻塞線程2
err = pthread_join(threadid2, &tret);
if (err != 0)
{
printf("阻塞線程2失敗,錯誤為: %s\n", strerror(err));
}
//退出并且打印線程2的退出狀態
printf("線程2的退出碼為 %d\n", (int)tret);
exit(0);
}免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。