ChinaUnix.net
相关文章推荐:

pthread_cancel

本帖最后由 chenzhanyiczy 于 2013-07-05 17:06 编辑 [code]class Info { public: ~Info() { printf("~Info()\n"); //-----1 } }; void thread_cleanup(void* arg) { printf("thread id=%lu cleanup\n",pthread_self()); //-----2 } void* func(void *arg) { int tick; pthread_setcancelstate(pthread_cancel_ENABLE, NULL); pthread_setcanceltype...

by chenzhanyiczy - C/C++ - 2013-07-09 11:41:19 阅读(1829) 回复(6)

相关讨论

某个线程,如果执行时间超过10小时还没有结束,希望能够在主线程中终止掉这个线程。 我现在直接调用pthread_cancel 后来网上查了一下,说这个函数不宜使用,调用的时候具体会做什么事情呢? 有什么需要注意的事项吗? 刚接触linux线程编程,哪位有相关资料能不能共享一下?

by tcwn_feng - C/C++ - 2010-07-21 22:47:20 阅读(4065) 回复(10)

请教各位 我在一个线程中定义了rtp报文发送,发送之前bind了发送端口,这个线程不停地发送。 我使用pthread_cancel 结束这个线程。 我的疑问是: 1.线程占用的资源有没有释放,还是说要主程序结束时,才会真正释放呢? 2.第二个问题和第一个相关,就是我在发送时设置的socket文件描述符,在线程cancel时,close了吗? 现实的情况是, 我第一次调用发送线程后,cancel它。 在主程序没有结束之前,再次调用发送线程,...

by motive - Linux环境编程 - 2009-01-13 11:23:30 阅读(1291) 回复(1)

请问使用pthread_cancel()结束一个线程成功,能不能同时也释放该线程资源?

by jiluofu - C/C++ - 2006-11-15 09:26:47 阅读(1838) 回复(2)

请问使用pthread_cancel停止线程是否安全? 我尝试pthread_cancel(0),会出现内存错误导致进程死掉,这是为什么呢?我man了pthread_cancel,它说如果要停止的线程pthread_t不存在,会报错,但是应该不会杀死进程啊? 谢谢

by marco_chan - C/C++ - 2006-05-31 11:23:31 阅读(1046) 回复(1)

这里人气旺,请教个问题 我在一个线程中定义了rtp报文发送,发送之前bind了发送端口,这个线程不停地发送。 我使用pthread_cancel 结束这个线程。 我的疑问是: 1.线程占用的资源有没有释放,还是说要主程序结束时,才会真正释放呢? 2.第二个问题和第一个相关,就是我在发送时设置的socket文件描述符,在线程cancel时,close了吗? 现实的情况是, 我第一次调用发送线程后,cancel它。 在主程序没有结束之前,再次...

by motive - C/C++ - 2009-01-13 10:01:06 阅读(1442) 回复(3)

请问,我在用pthread_cancel函数取消一个线程时,但该线程并没有设置取消点,可是运行出来的结果却和理论值两样。因为我在线程中用了一个for(;;),照理该线程应该一直循环下去,可是该线程却可以退出。该程序如下: #include #include <pthread.h> #include #include #include int fd; char buf[40]; pthread_mutex_t mutex=pthread_MUTEX_INITIALIZER; void *search(void *arg...

by huhui_21cn - Linux环境编程 - 2012-12-13 21:49:16 阅读(24844) 回复(9)

很简单的情况,创建两个线程,第2个去cancel第1个。 但如果 f1 中的 localtime_r 和 sem 同时打开执行, f2 在 join时阻塞; 如果只开任何一个, f2 的join 成功。 困惑中,请高手指点! (redhat 8.0) #include <pthread.h> #include #include #include #define LEN 128 #define PATH "./" pthread_t tid[2]; char filename[LEN]; FILE *f; void *f1(void *p) { pthread_setcancelstate...

by andyY - 程序开发 - 2006-02-08 13:09:16 阅读(10870) 回复(16)

很简单的情况,创建两个线程,第2个去cancel第1个。 但如果 f1 中的 localtime_r 和 sem 同时打开执行, f2 在 join时阻塞; 如果只开任何一个, f2 的join 成功。 困惑中,请高手指点! (redhat 8.0) #include <pthread.h> #include #include #include #define LEN 128 #define PATH "./" pthread_t tid[2]; char filename[LEN]; FILE *f; void *f1(void *p) { pthread_setcancelstate...

by andyY - Linux环境编程 - 2006-02-08 13:09:16 阅读(5098) 回复(16)

代码如下: #define _MULTI_THREADED #include #include <pthread.h> #include using namespace std; void* t_work(void* attr){ cout<<"disable cancellation"<pthread_setcancelstate(pthread_cancel_DISABLE, NULL); int i = 0; while(1){ sleep(1); i++; cout<<"i = "<pthread_testcancel(); cout<<"enable cancellati...

by luoleicn - C/C++ - 2010-07-21 23:13:50 阅读(1518) 回复(6)

求教各位大神,我的程序设定了一个计时功能,即一个程序用pthread_cond_timedwait等待30秒如果30秒没有结束我就用pthread_cancel杀死线程,但是我在调试的时候发现pthread_cancel好像用的有点问题,我写了一个关于pthread_cancel的例子(跟超时没关系,只是测试下pthread_cancel)果然有问题麻烦给看一下,我急用,感激涕零阿 #include #include <pthread.h> #include #include using namespace std...

by luoleicn - C/C++ - 2009-06-10 17:08:07 阅读(3325) 回复(8)