当前位置: 技术问答>linux和unix
大家帮忙看看这个pthread_cancel怎么没有起到作用?
来源: 互联网 发布时间:2015-07-08
本文导语: 源程序如下: #include #include #include #include void task1(int *counter); void task2(int *counter); void cleanup(int counter1,int counter2); int g1=0; int g2=0; int main(int argc,char * argv[]) { pthread_t thrd1,thrd2; int ret; ret=pthread_create(&thrd...
源程序如下:
#include
#include
#include
#include
void task1(int *counter);
void task2(int *counter);
void cleanup(int counter1,int counter2);
int g1=0;
int g2=0;
int main(int argc,char * argv[])
{
pthread_t thrd1,thrd2;
int ret;
ret=pthread_create(&thrd1,NULL,(void *)task1,(void *)&g1);
if (ret){
perror("pthread_create :task1");
exit(EXIT_FAILURE);
}
ret=pthread_create(&thrd2,NULL,(void *)task2,(void *)&g2);
if (ret){
perror("pthread_create :task2");
exit(EXIT_FAILURE);
}
pthread_join(thrd2,NULL);
pthread_cancel(thrd1);
pthread_join(thrd1,NULL);
cleanup(g1,g2);
exit(EXIT_SUCCESS);
}
void task1(int *counter)
{
while (*counter
#include
#include
#include
#include
void task1(int *counter);
void task2(int *counter);
void cleanup(int counter1,int counter2);
int g1=0;
int g2=0;
int main(int argc,char * argv[])
{
pthread_t thrd1,thrd2;
int ret;
ret=pthread_create(&thrd1,NULL,(void *)task1,(void *)&g1);
if (ret){
perror("pthread_create :task1");
exit(EXIT_FAILURE);
}
ret=pthread_create(&thrd2,NULL,(void *)task2,(void *)&g2);
if (ret){
perror("pthread_create :task2");
exit(EXIT_FAILURE);
}
pthread_join(thrd2,NULL);
pthread_cancel(thrd1);
pthread_join(thrd1,NULL);
cleanup(g1,g2);
exit(EXIT_SUCCESS);
}
void task1(int *counter)
{
while (*counter
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。