当前位置: 技术问答>linux和unix
关于pthread_cancel的问题
来源: 互联网 发布时间:2016-10-25
本文导语: 代码如下 #include #include #include #include #include pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; void *search(void *arg) { int d=0; for(;;) { printf( "d=%dn ",d++); } printf( "OKn "); } ...
代码如下
我的问题是
1. 程序编译运行后每次输出结果都不一样,导致这个不一样的原因是什么
2. 如果将search函数中的printf取消后程序会一直运行下去(至少我不知道程序什么时候会停,而有printf时大概输出到1000多时会停止,至于具体值未知),是不是说明printf存在取消点不
另外还请高人解释下哪些情况会存在取消点啊
谢谢
#include
#include
#include
#include
#include
pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;
void *search(void *arg)
{
int d=0;
for(;;)
{
printf( "d=%dn ",d++);
}
printf( "OKn ");
}
int main (void)
{
pthread_t tid;
pthread_create(&tid,NULL,search,NULL);
pthread_cancel(tid);
printf( "the main endn ");
pthread_join(tid,NULL);
printf( "the cancel prom is overn ");
return 0;
}
我的问题是
1. 程序编译运行后每次输出结果都不一样,导致这个不一样的原因是什么
2. 如果将search函数中的printf取消后程序会一直运行下去(至少我不知道程序什么时候会停,而有printf时大概输出到1000多时会停止,至于具体值未知),是不是说明printf存在取消点不
另外还请高人解释下哪些情况会存在取消点啊
谢谢
|
程序编译运行后每次输出结果都不一样,导致这个不一样的原因是什么
这个是因为取消点从哪里取消是任意的
这个是因为取消点从哪里取消是任意的