一. 事件循环的例子
#include <uv.h>
#include <iostream>
void timer_callback(uv_timer_t* timer) {
// Callback logic here
std::cout << "Timer callback" << std::endl;
}
int main() {
uv_loop_t* loop = uv_loop_new();
uv_loop_init(loop);
uv_timer_t timer;
uv_timer_init(loop, &timer);
uv_timer_start(&timer, timer_callback, 1000, 1000);
uv_run(loop, UV_RUN_DEFAULT);
uv_loop_close(loop);
return 0;
}
这个例子包含事件循环的句柄(loop),经历初始化,运行,停止,关闭等流程。
二. 代码解析
1. 结构体
uv_loop_t
struct uv_loop_s {
/* 用户自定义数据. */
void* data;
/* 活跃状态句柄计数器. */
unsigned int active_handles;
void* handle_queue[2];
union {
/* 未来扩展 */
void* unused;
/* 对在线程池中调用的异步I/O进行计数 */
unsigned int count;
} active_reqs;
/* Internal storage for future extensions. */
void* internal_fields;


发布评论