libuv::简介

 

由epoll,kqueue,IOCP和事件端口支持的功能齐全的事件循环。
异步TCP和UDP套接字
异步DNS解析
异步文件和文件系统操作
文件系统事件
ANSI转义码控制的TTY
具有套接字共享的IPC,使用Unix域套接字或命名管道(Windows)
子进程
线程池
信号处理
高分辨率时钟
线程和同步原语

 

//handle是持久化的对象。在异步操作中,相应的handle有许多关联的request。
typedef struct uv_loop_s uv_loop_t;            // 事件循环
typedef struct uv_handle_s uv_handle_t;        // 所有libuv句柄类型的基本类型。
typedef struct uv_stream_s uv_stream_t;        // 流句柄提供双工通信通道的抽象。 uv_stream_t是一个抽象类,libuv提供的形式3个实现uv_tcp_t,uv_pipe_t和uv_tty_t。
typedef struct uv_tcp_s uv_tcp_t;              // TCP手柄
typedef struct uv_udp_s uv_udp_t;              // UDP手柄
typedef struct uv_pipe_s uv_pipe_t;            // 管道句柄
typedef struct uv_tty_s uv_tty_t;              // TTY句柄 
typedef struct uv_poll_s uv_poll_t;            // 轮询句柄, 轮询句柄用于监视文件描述符的可读性,可写性和断开性
typedef struct uv_timer_s uv_timer_t;          // 计时器句柄

typedef struct uv_check_s uv_check_t;          // 检查句柄, 在轮询I/O之后,检查句柄将在每个循环迭代中运行给定的回调一次。
typedef struct uv_idle_s uv_idle_t;            // 空闲句柄
typedef struct uv_prepare_s uv_prepare_t;      // 准备句柄

typedef struct uv_async_s uv_async_t;          // 异步句柄, 异步句柄允许用户“唤醒”事件循环并获取从另一个线程调用的回调。
typedef struct uv_process_s uv_process_t;      // 进程句柄, 进程句柄将产生一个新的进程,并允许用户控制它并使用流与它建立通信通道。
typedef struct uv_fs_event_s uv_fs_event_t;    // FS事件句柄
typedef struct uv_fs_poll_s uv_fs_poll_t;      // FS轮询句柄
typedef struct uv_signal_s uv_signal_t;        // 信号句柄, 信号句柄在每个事件循环的基础上实现Unix风格的信号处理。

 

//request是短暂性的,通常只维持一个回调的时间,一般对应handle的一个IO操作。
typedef struct uv_req_s uv_req_t;                    // 基本请求,uv_req_t是所有libuv请求类型的基本类型。
typedef struct uv_getaddrinfo_s uv_getaddrinfo_t;    // DNS实用程序功能,libuv提供getaddrinfo和getnameinfo的异步变体。
typedef struct uv_getnameinfo_s uv_getnameinfo_t;    // DNS实用程序功能,libuv提供getaddrinfo和getnameinfo的异步变体。
typedef struct uv_shutdown_s uv_shutdown_t;          // 关机请求类型。
typedef struct uv_write_s uv_write_t;                // 编写请求类型。
typedef struct uv_connect_s uv_connect_t;            // 连接请求类型。
typedef struct uv_udp_send_s uv_udp_send_t;          // UDP句柄, UDP处理客户端和服务器的封装UDP通信。
typedef struct uv_fs_s uv_fs_t;                      // 文件系统请求类型。
typedef struct uv_work_s uv_work_t;                  // libuv提供了一个线程池,可用于运行用户代码并在循环线程中得到通知。
                                                     // 默认大小为4,但可以在启动时通过将UV_THREADPOOL_SIZE环境变量设置为任何值(绝对最大值为1024)来更改它 。

 

typedef struct uv_cpu_info_s uv_cpu_info_t;                    // CPU信息的数据类型。
typedef struct uv_interface_address_s uv_interface_address_t;  // 接口地址的数据类型。
typedef struct uv_dirent_s uv_dirent_t;                        //
typedef struct uv_passwd_s uv_passwd_t;                        // 密码文件信息的数据类型。

 

 

 

 

 

posted @ 2020-12-05 13:11  osbreak  阅读(574)  评论(0编辑  收藏  举报