#include <cstdio> #include <stdio.h> #include <stdlib.h> #include <libuv/uv.h> #include <unistd.h> uv_loop_t* create_loop() { uv_loop_t* loop = (uv_loop_t*)malloc(sizeof(uv_loop_t)); if (loop) { uv_loop_init(loop); } return loop; } void signal_handler(uv_signal_t* handle, int signum) { printf("Signal received: %d ", signum); uv_signal_stop(handle); } /*线程中运行循环*/ void thread_worker(void* userp) { //获取线程ID uv_thread_t self_id = uv_thread_self(); printf("thread id = %lu ", self_id); uv_loop_t* loop2 = create_loop(); uv_loop_t* loop3 = create_loop(); uv_signal_t sig2; uv_signal_init(loop2, &sig2); uv_signal_start(&sig2, signal_handler, SIGUSR1); uv_signal_t sig3; uv_signal_init(loop3, &sig3); uv_signal_start(&sig3, signal_handler, SIGUSR1); while (uv_run(loop2, UV_RUN_NOWAIT) || uv_run(loop3, UV_RUN_NOWAIT)) { } } int main() { printf("PID %d ", getpid()); uv_thread_t thread; uv_thread_create(&thread, thread_worker, 0); //等待子线程结束 uv_thread_join(&thread); return 0; }
libuv::线程
免责声明:文章转载自《libuv::线程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。
上篇轻松学Pytorch-详解Conv2D卷积处理我也要谈谈大型网站架构之系列(2)——纵观历史演变(下)下篇
宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=