Libuv 工作队列
起因
看Libuv文档发现有工作队列,工作队列中的任务完成之后还可以通知主线程.果真是利器呀!代码示例
static uv_loop_t* loop;
//队里的线程执行任务结束后,通知主线程
void uv_after_work_cb1(uv_work_t* req, int status)
{
printf("uv_after_work_cb1 thread id:%d\n", uv_thread_self());
}
//不在主线程执行(线程池中的工作线程)
void uv_work_cb1(uv_work_t* req)
{
printf("uv_work_cb1 thread id:%d\n", uv_thread_self());
}
int main(int argc, char* argv[])
{
loop = uv_default_loop();
printf("main thread id:%d\n", uv_thread_self());
uv_work_t uv_work;
uv_queue_work(loop, &uv_work,uv_work_cb1,uv_work_cb1);
uv_run(loop, UV_RUN_DEFAULT);
return 0;
}
秋风
2020-09-21