Tag: 睡觉我们睡着了

睡在线程中(C / POSIX线程)

我正在开发一个使用POSIX线程的multithreading应用程序。 我正在使用线程来做一个定期的工作,为此我正在使用usleep(3)来暂停线程执行。 我的问题是如何从主线程取消usleep()计时器,我尝试了pthread_kill(thread, SIGALRM)但它具有全局效果,导致主应用程序终止(默认情况下)。 这是我的伪代码: void threaded_task(void *ptr) { initialize(); while(running) { do_the_work(); usleep(some_interval); } clean_up(); release_resources(); } 这里是伪函数,用于从主线程停止(并正常关闭 )给定线程 : void stop_thread(pthread_t thread) { set_running_state(thread, 0); // Actually I use mutex staff // TODO: Cancel sleep timer so that I will not wait for nothing. // Wait for task to finish possibly running work […]