如何在linux下用c++强制结束一个线程呢

2024-10-31 23:22:26
推荐回答(1个)
回答1:

  1. 执行完成后隐式退出

  2. 由线程本身显示调用pthread_exit 函数退出;
    pthread_exit (void * retval) 

  3. 被其他线程用pthread_cance函数终止:
    pthread_cance (pthread_t thread) 

    解决办法:

  4. // 创建线程前设置 PTHREAD_CREATE_DETACHED 属性

    pthread_attr_t attr;

    pthread_t thread;

    pthread_attr_init (&attr);

    pthread_attr_setdetachstat(&attr, PTHREAD_CREATE_DETACHED);

    pthread_create (&thread, &attr, &thread_function, NULL);

    pthread_attr_destroy (&attr);

  5. 当线程为joinable时,使用pthread_join来获取线程返回值,并释放资源。

  6. 当线程为joinable时,也可在线程中调用 pthread_detach(pthread_self());