版权声明: 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;
}