3

我想从另一个线程中杀死一个线程,并且我想在它运行时执行此操作,所以它不会像将循环变量更改为某些东西。最合适的方法是什么?

更清楚地说,我正在使用 cURL 并且在某些时候我不希望 curl 执行下载。curl API 不提供类似的东西。所以我必须取消线程。

4

1 回答 1

3

杀死线程很少是一个好主意,因为它很容易导致内存/资源泄漏。被杀死的线程只清理它的堆栈和线程本身使用的内存,没有通过 new/malloc 等分配。

但是,如果你真的想杀死线程,使用 pthreads 的正确方法是调用pthread_cancel.

另外:看这里:

使用 pthread_cancel 取消线程:好的做法或坏的做法

于 2012-12-19T03:08:48.397 回答