在C++中,使用pthread庫創(chuàng)建的線程可以通過pthread_cancel函數(shù)來優(yōu)雅地退出線程。具體步驟如下:
void* thread_func(void* arg) {
while (1) {
// do something
pthread_testcancel();
}
}
pthread_t thread;
pthread_create(&thread, NULL, thread_func, NULL);
// 請求取消線程
pthread_cancel(thread);
void cleanup(void* arg) {
// clean up resources
}
void* thread_func(void* arg) {
pthread_cleanup_push(cleanup, NULL);
while (1) {
// do something
pthread_testcancel();
}
pthread_cleanup_pop(1);
}
通過以上步驟,可以實(shí)現(xiàn)優(yōu)雅地退出pthread線程。