前置知识点:浏览器原理,浏览器内核5种线程及协作,JS引擎单线程设计推荐阅读:从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理【FE】浏览器渲染引擎「内核」js异步编程,Promise实现推荐阅读:Javascript异步编程的4种方法前端面试必考题Promise的源码解析堆、栈、队列、执行... ...
分类:
编程语言 时间:
2020-02-08 13:57:19
阅读次数:
89
一、EventLoop和EventLoopGroup EventLoop如同它的名字,它是一个无限循环(Loop),在循环中不断处理接收到的事件(Event)。 Netty线程模型的基石是建立在EventLoop上的,从设计上来看,EventLoop采用了一种协同设计,它建立在两个基本的API之上: ...
分类:
编程语言 时间:
2020-01-19 11:03:58
阅读次数:
90
asyncio是python 3.4引入的标准库,直接内置了对异步io的支持 asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO 用asyncio实现Hello world代码如 ...
分类:
编程语言 时间:
2019-12-31 18:59:36
阅读次数:
113
之前有一些机会断断续续接触过一些Node.js的项目,但只仅限于使用它简单实现一些功能,没有过多深入的研究。现在因为带领公司大前端技术,服务端渲染直出、BFF(Backend For Frontend)等需求会越来越多,组内需要对服务端技术有更深刻的理解,如果对Node.js仅仅停留在如何写业务代码 ...
分类:
Web程序 时间:
2019-12-04 22:00:44
阅读次数:
141
golang和swoole区别 开发效率 Go语言是本质上是静态语言,开发效率稍差,但性能更强,更适合底层软件的开发 Swoole使用PHP语言,动态脚本语言,开发效率最佳,更适合应用软件的开发 IO模型 go语言使用单线程eventloop处理IO事件,多线程实现协程调度,执行用户层代码 swoo ...
分类:
其他好文 时间:
2019-12-02 23:45:40
阅读次数:
125
本文主要讨论Netty NioEventLoop原理及实践,关于Netty NioEventLoop,首先要知道NioEventLoop是什么,为什么它会是Netty核心Reactor处理器,实现原理是什么,进而再讨论Netty对其的实现及使用上我们可以学到哪些。 EventLoop是一个React ...
分类:
Web程序 时间:
2019-12-01 12:10:33
阅读次数:
110
EventLoop是什么?什么是宏任务?微任务又是什么?任务队列…… ...
分类:
Web程序 时间:
2019-11-28 23:13:08
阅读次数:
204
1. 基础知识 1. js语言特点 1. js语言是单线程语言,主线程是单线程。 2. js语言采用事件循环(EventLoop)机制。 2. 同步任务/异步任务 同步任务: 不被引擎挂起,在主线程等待执行的, 按照顺序执行的任务。 异步任务: 一般比较消耗时间,被引擎挂起,进入任务队列,等待主线程 ...
分类:
编程语言 时间:
2019-10-24 19:49:12
阅读次数:
124
先来一道关于async/await、promise和setTimeout的执行顺序的题目: 执行结果: 首先,我们先来了解一下基本概念: js EventLoop 事件循环机制: JavaScript的事件分两种,宏任务(macro-task)和微任务(micro-task) 宏任务:包括整体代码s ...
分类:
其他好文 时间:
2019-10-19 15:14:55
阅读次数:
88
Unsafe类实际上是Channel接口的辅助类,实际的IO操作都是由Unsafe接口完成的。 一、Unsafe继承关系图 二、AbstractUnsafe源码分析 1. register方法 register方法主要用于将当前Unsafe对应的Channel注册到EventLoop的多路复用器上, ...
分类:
Web程序 时间:
2019-09-25 16:11:30
阅读次数:
130