libuv工作队列

版权声明: https://blog.csdn.net/qq_28710983/article/details/83097433

 主要通过uv_queue_work函数来实现工作队列,uv_work_t uv_work中的data可以用来传递数据

static void thread_work(uv_work_t* req) {
	// 
	printf("user data = %d \n", (int)req->data);
	printf("thread_work id 0x%d:\n", uv_thread_self());
}

// 当工作队列里面的线程执行完上面的任务后,通知主线程;
// 主线程调用这个函数;
static void on_work_complete(uv_work_t* req, int status) {
	printf("on_work_complete thread id 0x%d:\n", uv_thread_self());
}

int main(int argc, char** argv) {
	uv_work_t uv_work;
	printf("main id 0x%d:\n", uv_thread_self());
	uv_work.data = (void*)6;
	uv_queue_work(uv_default_loop(), &uv_work, thread_work, on_work_complete);

	uv_run(uv_default_loop(), UV_RUN_DEFAULT);
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_28710983/article/details/83097433