
Linux 基础
文章平均质量分 78
怕什么真理无穷
怕什么真理无穷,进一寸有一寸的欢喜——胡适!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Makefile 编写规则
Makefile选项CFLAGS,LDFLAGS,LIBSCFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该变量中来。LDFLAGS:gcc 等编译器会用到原创 2022-03-16 08:19:47 · 1504 阅读 · 0 评论 -
windows VS2017 编译最新的libuv 库
下载libuv:https://github.com/libuv/libuv (注意下载 libuv-1.35.0.tar.gz 版本,含有vcbuild.bat 文件,往后的版本没有)。下载gyp(https://github.com/turbulenz/gyp)解压后放在libuv/build下。gyp安装需要python环境,下载Python2.x。(https://www.python.org/ftp/python/2.7.13/python-...原创 2022-02-13 15:05:44 · 624 阅读 · 0 评论 -
libuv 线程
Threads等一下!为什么我们要聊线程?事件循环(event loop)不应该是用来做web编程的方法吗?(如果你对event loop, 不是很了解,可以看这里)。哦,不不。线程依旧是处理器完成任务的重要手段。线程因此有可能会派上用场,虽然会使得你不得不艰难地应对各种原始的同步问题。 线程会在内部使用,用来在执行系统调用时伪造异步的假象。libuv通过线程还可以使得程序异步地执行一个阻塞的任务。方法就是大量地生成新线程,然后收集线程执行返回的结果...原创 2022-02-13 12:49:32 · 1401 阅读 · 1 评论 -
libuv 基本概念
libuv是一个跨平台库,是围绕着事件驱动的异步I/O模型来设计的。本库不止提供了对不同I/O polling机制的抽象,handles和streams机制也提供了一个更高层的对于sockets和其他实体的抽象。本库还提供了跨平台的文件I/O操作及线程功能。 1) 最底层的socket相关操作有epoll/kqueue和event ports,这些事基于unix like系统的,在这些系统特定的API之上抽象出了一层uv_io_t结构用于提供统一...原创 2022-02-13 12:31:10 · 978 阅读 · 0 评论 -
libuv 的Processes
libuv提供了相当多的子进程管理函数,并且是跨平台的,还允许使用stream,或者说pipe完成进程间通信。 在UNIX中有一个共识,就是进程只做一件事,并把它做好。因此,进程通常通过创建子进程来完成不同的任务(例如,在shell中使用pipe)。 一个多进程的,通过消息通信的模型,总比多线程的,共享内存的模型要容易理解得多。 当前一个比较常见的反对事件驱动编程的原因在于,其不能很好地利用现代多核计算机的优势。一个多线程的程序,内核...原创 2022-02-13 12:00:17 · 491 阅读 · 0 评论 -
libuv 的 event loops
libuv提供了非常多的控制event-loop的方法,你能通过使用多loop来实现很多有趣的功能。你还可以将libuv的event loop嵌入到其它基于event-loop的库中。比如,想象着一个基于Qt的UI,然后Qt的event-loop是由libuv驱动的,做着加强级的系统任务。Stopping an event loopuv_stop()用来终止event loop。loop会停止的最早时间点是在下次循环的时候,或者稍晚些的时候。这也就意味着在本次循环中已经准备被...原创 2021-12-26 11:18:18 · 433 阅读 · 0 评论