gpt4 book ai didi

c - 等待事件结束时该做什么

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:19 25 4
gpt4 key购买 nike

海湾合作委员会 4.4.3 c89

我有一个在单独线程中运行的事件循环。

我的设计是这样的,只是示例代码来帮助解释。

我需要以某种方式等待初始化完成,然后才能调用 get_device_params。

我确实在调用 get_device_params 之前让 usleep 持续了 3 秒,但我真的不想阻止。

非常感谢您的任何建议,

void* process_events(void *data)
{
switch(event_type)
{
case EVT_INITIALIZED:
/* Device is now initialized */
break;
}
}

int main(void)
{
/* Create and start thread and process incoming events */
process_events();

/* Initialize device */
initialize_device();

/* Get device parameters */
/* However, I cannot run this code until initialization is complete */
get_device_params();

return 0;
}

最佳答案

如果这个单独的线程是 POSIX 线程(即您在典型的 UNIX 平台上),那么您可以使用 pthread 条件变量。

你调用pthread_cond_wait()在等待线程中。当 init 线程完成它的工作时,你调用 pthread_cond_signal() .在我看来,这是在另一个线程中等待初始化的规范方式。

关于c - 等待事件结束时该做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3725891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com