当前位置:  技术问答>linux和unix

pthread_cancel线程退出问题 while(1)这种循环如何退出?急!急 !

    来源: 互联网  发布时间:2016-03-19

    本文导语:  本人有一线程函数 并包了如下代码 其他处理代码没有贴出。 while(1) { ..... } 如果使用pthread_cancel结束线程  并等待线程结束pthread_join 会一直阻塞  线程无法终止 难道只用标志位来作?请指点 | ...

本人有一线程函数
并包了如下代码 其他处理代码没有贴出。
while(1)
{
.....
}
如果使用pthread_cancel结束线程 
并等待线程结束pthread_join 会一直阻塞  线程无法终止 难道只用标志位来作?请指点

|
和while里面的函数有关。
有些函数会检查pthread_cancel,有些函数不会。

请查联机帮助。

|


抱歉,想当然了。

下面是我新查到的内容。
#include 

int pthread_setcancelstate(int state, int *oldstate);
int pthread_setcanceltype(int type, int *oldtype);
void pthread_testcancel(void);

The pthread_setcancelstate() function shall atomically both set the calling
thread's cancelability state to the indicated state and return the previous
cancelability state at the location referenced by  oldstate.  Legal  values
for state are PTHREAD_CANCEL_ENABLE and PTHREAD_CANCEL_DISABLE.

The  pthread_setcanceltype() function shall atomically both set the calling
thread's cancelability type to the indicated type and return  the  previous
cancelability  type at the location referenced by oldtype. Legal values for
type are PTHREAD_CANCEL_DEFERRED and PTHREAD_CANCEL_ASYNCHRONOUS.

|
调用pthread_cancel去取消线程的话,该线程必须有取消点。

|
先用man pthread_cancel看看这个函数到底做了什么事情,如何影响的线程,然后再使用它,不要看着函数名想当然的来使用。这种学习态度要贯穿所有系统函数的学习,尽管有些函数已经非常简单

|
//设置线程属性
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,NULL);//线程可以被取消掉
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS,NULL);//立即退出

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • pthread_cancel()返回值为3,是什么原因?
  • 关于pthread_cancel()之后的内存问题
  • 关于pthread_cancel的问题
  • pthread_cancel和pthread_cond_wait
  • 大家帮忙看看这个pthread_cancel怎么没有起到作用?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3