我需要创建,运行,停止线程,然后再重复相同的过程(重新加载一些新数据,需要刷新,不能使用C ++ 11标准)。我已经创建并运行了类似于我的主线程
的线程pthread_t p;
pthread_create(&p, NULL, calculation, some_pointer_to_object);
如何从主线程中停止并销毁此线程? (pthread_exit来自当前线程)。
答案 0 :(得分:1)
您需要使用pthread_cancel()
。
答案 1 :(得分:0)
这样做的唯一简洁方法是:在主线程中设置一个标志,启动线程,在新线程中轮询标志并在设置时快速完成。除了让你的新线程根据要求干净地关闭,其他所有东西都会打开一大堆蠕虫,这是轻描淡写的。