April 12, 2020
April 12, 2020
Node是面向网络进行设计,web应用已经不再是单台服务器就能胜任的,在现今高并发已经是现代编程经常遇到的问题,网络的访问关系到用户的体验与资源的分配及资源的合理利用。
随着网站或应用的不断膨胀,数据将会分布在多台服务器上,资源分布后将会造成获取资源耗时变长,会更加造成异步与同步在性能上的差异,只有后端能够快速响应资源,才能让前端的体验更好。
单线程同步编程模型会阻塞I/O导致硬件资源得不到更优的使用,多线程编程模型也因为编程中的死锁、状态同步问题都会造成开发的难度,Node在两者之间给出的解决方案:利用单线程原理多线程死锁、状态同步等问题;利用异步I/O,让单线程原理阻塞,以更好地使用CPU。
Node的异步I/O整个过程包括事件循环、观察者和请求对象等,接下来将会从这几方面介绍Node的异步I/O
April 12, 2020
April 12, 2020
April 12, 2020
April 11, 2019
October 24, 2018
September 26, 2018
javascript是单线程模型,如果要处理一些密集型任务时可能会拖慢主进程的执行(如页面UI卡顿),是否可以使javascript像其他语言使用多线程方式运行,一部分运行在UI线程下,另一部分运行一个独立线程(如只进行某些复杂运算)。
Web Worker作用就是为javascript提供一个创建多线程环境,但是这是浏览器的功能,实际和javascript语言本身几乎没什么关系,浏览器可以提供多个引擎实例,各自运行在自身的线程上,这样就可以在不同的线程上运行不同的程序。在worker内部是无法访问主程序的任何资源,这意味着你不能访问它的任何全局变量,也不能访问页面的DOM或者其他资源,这是一个完全独立的线程。
May 3, 2018
March 3, 2018