nodejs

nodejs 语法

Posted by nomadli on November 6, 2019

事件循环

  1. EV_DEFAULT ev_default_loop 不是线程安全的而
  2. ev_loop_new(EVBACKEND_EPOLL EVFLAG_NOENV) 不能捕捉信号和子进程的观察器
  3. ev_loop_destroy 销毁ev_loop_new
  4. fork后需要先调用 ev_default_fork 或 ev_loop_fork
  5. ev_run 第二个参数为0时持续运行并处理循环直到没有活动的事件观察器或者调用了ev_break, EVRUN_NOWAIT EVRUN_ONCE
  6. ev_break 跳出事件循环. EVBREAK_ONE跳出最内层的 ev_run EVBREAK_ALL跳出全部嵌套的ev_run
  7. ev_suspend 和 ev_resume 暂停和重启事件循环

观察器

  1. 4种状态:初始化、启动/活动、等待、停止
  2. 支持优先级
  3. ev_io ev_timer(秒) ev_periodic(小时, 自定义周期函数) ev_signal信号监控 ev_child监听子进程结束 ev_stat文件状态
  4. libev还支持很多其他的有用的功能,比如自定义观察器,在线程中使用等。