linux怎么杀死线程c语言,教程-linux下c语言编程 第一弹-线程的使用
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
/*linux下最常用的應(yīng)該就是pthread線程庫了
本教程就是關(guān)于pthread的
關(guān)于線程是什么東西我就不贅述了 百科上都有*/
#include
#include//pthread庫的頭文件
//聲明并定義一個函數(shù)
void*function(void*data)
{
printf("start\n");
printf("function:%d\n",*(int*)(data));
printf("end\n");
return data;
}
int main()
{
pthread_t tid;
//*聲明一個pthread_t類型變量
//*相當(dāng)于一個線程的id
//*它在頭文件中的定義是 typedef long pthread_t
int n=123;
//先不要管這貨是干嘛的
pthread_create(&tid,NULL,function,&n);
/*
這個函數(shù)創(chuàng)建一個線程
第一個參數(shù)以指針傳遞,并且返回線程號
第二個參數(shù)是線程的屬性設(shè)置 現(xiàn)在我們設(shè)置成NULL表示使用默認(rèn)屬性
第三個參數(shù)是一個函數(shù)指針 void*(*func)(void*) 它和我們在main()前面定義的函數(shù)的格式是一樣的 現(xiàn)在把function作為參數(shù)傳入 表示線程從這個函數(shù)開始執(zhí)行 這個函數(shù)return就相當(dāng)于線程結(jié)束
最后一個參數(shù)是 void* 這個指針是傳遞給上面那個函數(shù)的 是給用戶自己定義的數(shù)據(jù)使用的 在這里我傳遞了一個int變量n的地址
在這個函數(shù)返回前,我們創(chuàng)建的線程可能已經(jīng)在執(zhí)行了
*/
printf("this is main()\n");
int *p;
pthread_join(tid,(void**)&p);
/*
等待一個線程的結(jié)束或者對已經(jīng)結(jié)束的進(jìn)程進(jìn)行清理操作
第一個參數(shù)是我們要等待的線程號
第二個參數(shù)是一個 void** ,它用于接受線程的返回值
在這里是 function的返回值
*/
printf("main:%d",*p);
return 0;
}
總結(jié)
以上是生活随笔為你收集整理的linux怎么杀死线程c语言,教程-linux下c语言编程 第一弹-线程的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专项附加扣除是什么意思
- 下一篇: 消息称苹果近期对iPhone SE3试产