当前位置: 首页 > news >正文

哈尔滨微网站建设/google推广技巧

哈尔滨微网站建设,google推广技巧,建站快车登陆,互联网个人信用信息服务平台官方文档URL 官方文档链接点我点我点我 1. 概述 libuv是一个支持多平台的异步IO库。它主要是为了node.js而开发的,但是也可以用于Luvit, Julia, pyuv及其他软件。 注意:如果您发现了此软件中的错误,那么请提交pull requests来帮助我们修改…

官方文档URL

官方文档链接点我点我点我

1. 概述
libuv是一个支持多平台的异步IO库。它主要是为了node.js而开发的,但是也可以用于Luvit, Julia, pyuv及其他软件。
注意:如果您发现了此软件中的错误,那么请提交pull requests来帮助我们修改这个错误以提升软件质量。
2. 特性
1. 基于epoll, kqueue, IOCP及事件端口(event ports)的事件循环的全部特性。
2. 异步TCP和UDP sockets。
3. 异步DNS决策。
4. 异步的文件及文件系统操作。
5. 文件系统事件。
6. ANSI转义码(escape code)控制的TTY。
7. 带有socket共享进程间通信(IPC),使用unix域sockets或者有名管道(named pipes)(在windows平台上)。
8. 子进程。
9. 线程池。
10. 信号处理。
11. 高分辨率(high resolution)时钟。
12. 线程和同步元语(synchronization primitives)
3.下载
libuv从此处下载。
4.安装
安装说明可以在README中找到。
5.升级
不同版本的程序迁移参考如下:
从0.10迁移到1.0.0
6.文档
6.1 设计概述
libuv是一个跨平台库,是围绕着事件驱动的异步I/O模型来设计的。
本库不止提供了对不同I/O polling机制的抽象,handles和streams机制也提供了一个更高层的对于sockets和其他实体的抽象。本库还提供了跨平台的文件I/O操作及线程功能。
下面的图展示了libuv的不同组件及相关的子系统。
这里写图片描述

  1. 最底层的socket相关操作有epoll/kqueue和event ports,这些事基于unix like系统的,在这些系统特定的API之上抽象出了一层uv_io_t结构用于提供统一的unix-like平台上的socket及事件接口。
  2. epoll ->linux内核;kqueue->freeBSD 4.1之后;event ports->貌似也是用在linux上的机制。
  3. IOCP为windows上特有的异步I/O事件模型,libuv也是支持的。着也就是libuv好于libev的地方。
  4. 此外libuv还支持线程池。
  5. 在上述底层抽象之上,libuv提供了更高一层的抽象,提供了抽象了的TCP/UDP/TTY/PIPE等接口。
  6. 在这些接口之上提供了文件I/O操作,DNS操作等。
  7. 用户可以基于上述的全部抽象接口实现自己的应用程序。

    句柄和请求
    libuv给用户提供了两种方式与event loop一起协同工作,一个是句柄(handle)一个是请求(request)。
    句柄代表了一个长期存在的对象,这些对象当处于活跃状态的时候能够执行特定的操作。例如:一个准备(prepare)句柄在活跃的时候可以在每个循环中调用它的回调一次。一个TCP服务器的句柄在每次有新的连接的时候都会调用它的连接回调函数。
    请求(request)一般代表短时操作。这些操作能用作用于句柄之上。写请求用于在句柄上写数据;还有一些例外,比如说getaddrinfo请求不需要句柄而是直接在循环中执行。
    I/O循环
    I/O循环或者叫做事件循环是整个libuv的核心部分。I/O循环建立了所有IO操作的执行环境,I/O循环会被绑定在一个线程之上。我们可以运行多个时间循环,只要每一个都运行在不同的线程之上。libuv事件循环 不是 线程安全的,所以所有包含事件循环的API及句柄都不是线程安全的。
    事件循环遵循最普遍的单线程异步I/O方法:所有I/O或者网络操作在非阻塞的socket上执行,这个socket会使用基于平台的组好的poll机制:在linux上使用epoll,在OSX和其他BSD平台上使用kqueue,在sunOS上使用event ports,在windows上使用IOCP。作为循环迭代的一部分,循环会阻塞以等待socket上的I/O活动,这些活动已经被加到socket的触发实践中了,一旦这些条件满足,那么socket的状态就会发生变化,从而循环不再阻塞,而且句柄也可以读、写及执行其他期望的I/O操作。
    为了更好的理解事件循环操作如何进行,一下的图展示了一个循环迭代的所有阶段。
    这里写图片描述

    1. 循坏中的“now”被更新为当前时间。事件循环在循环开始时缓存当前时间滴答数的目的是为了减少时间相关的系统调用数量。
    2. 如果循环是alive的,那么表明一个迭代已经开始了,否则的话循环会立即退出。那么,什么时候一个循环被认为是alive的呢?答案是如果一个循环中包括活跃及被引用的句柄(active and ref`d handles),活跃的请求或者是正在关闭的句柄,那么这个循环被认为是活的(alive)。
    3. Due定时器运行。
    4. 挂起的回调被调用。
    5. 空闲(idle)句柄回调被调用。
    6. 准备(prepare)回调句柄被调用。
    7. 计算poll超时。
    8. 循环阻塞。
    9. 调用check句柄。
    10. 调用close句柄。
    11. 特殊case运行。
    12. 一次循环迭代结束。
      **注意:
      libuv利用线程池技术使得异步文件I/O操作称为可能,但是对于网络IO只能执行在一个单一线程中,即loop的线程中。**
http://www.lbrq.cn/news/1532053.html

相关文章:

  • 淳安县建设局网站/网络推广代理怎么做
  • 软件开发工具平台/seo是什么化学名称
  • 服务器做的网站怎么使用教程/网络营销的定义
  • php自己做网站访问量计算/谷歌浏览器网页
  • 阿里虚拟主机怎么做两个网站/网络推广深圳有效渠道
  • 沈阳建立网站/win10优化大师免费版
  • 做几个网站好/关键词网站排名软件
  • 网站建设拥有域名后如何操作/查看浏览过的历史记录百度
  • 一键生成app工具/seo外链建设的方法
  • 360doc 网站怎么做/长沙新媒体营销
  • 个旧网站建设/如何做seo搜索引擎优化
  • wordpress正体中文/百度seo排名主要看啥
  • 怎样把录的视频做一下传到网站/链接交易网
  • b2c电子商务团购网站建设/什么是搜索引擎营销
  • 做网站有什么用/每日新闻摘要30条
  • wordpress底部友情链接/深圳seo公司排名
  • vue做前台网站/做推广哪个平台好
  • logo设计说明模板100字/seo关键字优化教程
  • 网站建设用户登录/新手怎么学电商运营
  • 装饰网站的业务员都是怎么做的/seo优化服务商
  • java网站建设/平台app开发制作
  • 建设工程监理考试网站/seo英文怎么读
  • 网站utf8乱码/河北seo技术
  • 怎么做百度里面自己的网站/网站的网站建设
  • 重庆綦江网站制作公司电话/海外推广服务
  • wordpress图片alt属性/网站seo外包公司
  • 企业网站 下载/链接地址
  • 凤山县住房和城乡建设局网站/中国新闻最新消息
  • 中兴的网站谁做的/线上营销手段
  • wordpress 显示图片/站长工具seo综合查询怎么关闭
  • 【lucene】lucene常用查询一览
  • 图--常见面试问题
  • 整体设计 之定稿 “凝聚式中心点”原型 --整除:智能合约和DBMS的在表层挂接 能/所 依据的深层套接 之2
  • 计算机网络技术学习-day6《三层交换机配置》
  • 2025.7.19卡码刷题-回溯算法-组合
  • openEuler系统中r如何将docker安装在指定目录