文章分类 - libuv库
摘要:介绍: 这本“书”是一组关于如何使用libuv作为高性能事件I/O库的一系列小的教程,它在Windows和Unix上提供相同的API。 它将涵盖libuv的主要领域,但不是讨论每个函数和数据结构的全面参考。 这本书仍在进行中,所以部分可能不完整,但我希望你会喜欢它的成长。 谁需要了解libuv: 如
阅读全文
摘要:Nikhil Marathe在一个下午(2012年6月16日)开始写这本书,当时他不想编程。他最近在处理node-taglib时,因为缺乏关于libuv的良好文档而感到苦恼。虽然有参考文档,但没有全面的教程。这本书就是这种需求的产物,并且力求准确。也就是说,这本书可能有错误。鼓励Pull请求。 Ni
阅读全文
摘要:本章对常用任务中有用的工具和技术进行了分类。libev手册页已经介绍了一些可以通过简单的API更改被libuv采用的模式。它还涵盖了libuv API的一些部分,这些部分不需要专门用一整章来描述。 定时器 计时器在计时器启动一段时间后调用回调。还可以将Libuv计时器设置为定期调用,而不是只调用一次
阅读全文
摘要:Libuv提供了对事件循环的大量用户控制,您可以通过同时处理多个循环来获得有趣的结果。你也可以将libuv的事件循环嵌入到另一个基于事件循环的库中——想象一个基于Qt的UI, Qt的事件循环驱动一个libuv后台,执行密集的系统级任务。 停止事件循环 Uv_stop()可以用来停止一个事件循环。循环
阅读全文
摘要:等一分钟吗?为什么我们在线程中?难道事件循环不应该是进行网络规模编程的方式吗?嗯…不。线程仍然是处理器执行其工作的媒介。因此,线程有时非常有用,即使您可能不得不费力地处理各种同步原语。 线程在内部用于伪造所有系统调用的异步性质。Libuv还使用线程来允许应用程序异步执行实际阻塞的任务,方法是生成一个
阅读全文
摘要:libuv中的联网与直接使用BSD套接字接口没有太大的区别,有些事情更简单,所有的都是非阻塞的,但概念是相同的。此外,libuv提供实用函数来抽象烦人的、重复的和低级的任务,比如使用BSD套接字结构设置套接字、DNS查找和调整各种套接字参数。 uv_tcp_t和uv_udp_t结构用于网络I/O。
阅读全文
摘要:简单的文件系统读写是通过uv_fs_*函数和uv_fs_t结构实现的。 注意:libuv文件系统操作不同于套接字操作。套接字操作使用操作系统提供的非阻塞操作。文件系统操作在内部使用阻塞函数,但是在线程池中调用这些函数,并在需要应用程序交互时通知注册到事件循环中的监视者。 所有文件系统函数都有两种形式
阅读全文
摘要:libuv基础: Libuv强制采用异步的、事件驱动的编程风格。它的核心工作是提供一个基于I/O和其他活动通知的事件循环和回调。Libuv提供了核心实用程序,如计时器、非阻塞网络支持、异步文件系统访问、子进程等。 事件循环: 在事件驱动编程中,应用程序对某些事件感兴趣,并在事件发生时对其作出响应。l
阅读全文