考虑以下计划:
#define _POSIX_C_SOURCE 200809L
#include <time.h>
#include <pthread.h>
#include <signal.h>
void timerfunc(union sigval val) { }
int main()
{
struct sigevent sev = { .sigev_notify = SIGEV_THREAD,
.sigev_notify_function = timerfunc };
timer_t t;
timer_create(CLOCK_REALTIME, &sev, &t);
timer_delete(t);
pthread_exit(0);
}
与glibc相关联,它不仅无法终止,而且除kill -9
/ SIGKILL
之外无法终止。标准是否允许这种行为?除了总是明确地退出流程(而不是只退出所有线程)之外,是否有良好的解决方法?
答案 0 :(得分:3)
答案 1 :(得分:0)
pthread_exit是否与主进程线程一起使用?我一直想知道pthread函数是否适用于不是由pthread_create创建的线程。