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;
}

libuv工作队列

秋风 2020-09-21