Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想从另一个线程中杀死一个线程,并且我想在它运行时执行此操作,所以它不会像将循环变量更改为某些东西。最合适的方法是什么?
更清楚地说,我正在使用 cURL 并且在某些时候我不希望 curl 执行下载。curl API 不提供类似的东西。所以我必须取消线程。
杀死线程很少是一个好主意,因为它很容易导致内存/资源泄漏。被杀死的线程只清理它的堆栈和线程本身使用的内存,没有通过 new/malloc 等分配。
但是,如果你真的想杀死线程,使用 pthreads 的正确方法是调用pthread_cancel.
pthread_cancel
另外:看这里:
使用 pthread_cancel 取消线程:好的做法或坏的做法