我正在使用不分配任何本地变量的pthread。由于我不想进入这里,我需要一个pthread_cancel()
选项,我写的线程应该能够支持它(没有资源清理,可以随时停止执行)。目前,我遇到问题,因为pthread_cancel
在pthread实际运行完成之前返回,导致只有在取消线程后我才会触摸的共享资源出现问题。等待pthread_cancel结束
有什么办法可以知道我的pthread何时完好无损?有没有可能是我没有找到的函数,或者我不熟悉的参数?
会
pthread_cancel(thread_handle);
pthread_join(thread_handle, NULL);
做的伎俩,或者说不能保证(因为thread_handle
可能已经是无效的)?
我对pthreads很新,所以最好的做法是欢迎(除了“不要使用pthread_cancel()
”,我已经了解到:P)。