美文网首页
周总结-线程和进程

周总结-线程和进程

作者: 一点红3340 | 来源:发表于2017-07-21 18:02 被阅读0次

hi 这里是胡斌的上周工作总结

Node中线程和异步的理解

一些理解

  • 我们写出来的js代码,是在单线程的环境中执行,但nodejs本身不是单线程的。如果我们在代码中执行了一个promise,它们可能是通过底层的c++模块在另外的线程中完成?... 但对于我们自己的js代码来说,它们处于单线程中。因为异步函数执行完将结果通过回调函数传给我们的时候,我们的代码一次只能处理一个。

  • node擅长处理高并发,是因为拥有异步IO,node在处理IO时主线程会创建N个子线程以提高速度,虽然开启了多个线程,但是所有线程都是基于主线程开启的只能跑在一个进程当中并不能充分利用cpu资源

单线程的问题

var start = Date.now();//获取当前时间戳
setTimeout(function () {
    console.log(Date.now() - start);
    for (var i = 0; i < 10000000000; i++){//执行长循环
    }
}, 1000);
setTimeout(function () {
    console.log(Date.now() - start);
}, 2000);

上面执行后的输出结果为1000、13322,足足等了10秒钟,console.log才被执行,这个for循环是一个非常吃CPU的计算过程,而Node的主线程却只能调用一个CPU来计算它(线程是cpu调度的一个基本单位,一个cpu同时只能执行一个线程的任务),但是如果我们在写JS代码时能像Node底层开启另外一个线程处理异步的方式那样,手动创建子线程,这个问题就解决了。

cluster和多线程模型

  • cluster是Node内置的用于启动多个子进程的模块,可以用来让Node.js充分利用多核cpu的性能。
  • 而另外一个TAGG模块可以让Node支持多线程模型从而启动多个子线程。

关于这两个模块对于进程和线程的操作原理以及区别还没有学习到位,下次总结这个吧。

使用单线程的Node写代码时应该注意的东西

  • 上面的测试说明了,在主线程做一些CPU计算量很大的任务可能会导致主线程卡住或者长时间停顿从而让整个程序的执行延时甚至卡死,影响程序性能,所以我们要非常小心的处理大量的循环,字符串拼接和浮点运算这种cpu密集型任务,在需要的时候应该利用上面提到的cluster和多线程模型把任务丢给子线程或子进程去完成,保持程序主线程的畅通。

然而我现在还没有真正使用过多线程模型进行编程过,上面的都是总结的理论知识,下次使用过后再好好总结这方面的知识。

相关文章

  • 周总结-线程和进程

    hi 这里是胡斌的上周工作总结 Node中线程和异步的理解 一些理解 我们写出来的js代码,是在单线程的环境中执行...

  • 进程、线程、多进程、多线程、任务、队列、NSThread、GCD

    推荐阅读:备战2020——iOS全新面试题总结 进程 线程 进程和线程的关系 多进程 多线程 任务 队列 iOS中...

  • Python 线程和进程和协程总结

    Python 线程和进程和协程总结 线程和进程和协程 进程 进程是程序执行时的一个实例,是担当分配系统资源(CPU...

  • 多线程

    16、知识点总结 1、线程和进程 进程:进程是指正在运行的程序。线程:线程是进程中的执行单元,一个进程至少有一个线...

  • 线程和进程概念

    线程和进程 进程 线程 线程和进程的区别

  • 进程与线程、线程池

    进程与线程的相关总结进程与线程的简单解释进程: 基本的资源分配资源线程: 最小调度单元 线程安全 线程安全是多线程...

  • iOS多线程-全面总结

    iOS多线程-全面总结 进程和线程 进程: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,...

  • 17_多线程

    =================线程和进程 =============进程 =============线程 ==...

  • iOS基础之多线程

    1.概念 (程序、进程、线程、多线程) 程序 进程 线程 多线程 简单总结 同步/异步/串行/并行 2. 使用(4...

  • 操作系统相关知识点总结(进程线程)

    进程、线程、多线程相关总结 概念 进程(process) 狭义定义:进程就是一段程序的执行过程。广义定义:进程是一...

网友评论

      本文标题:周总结-线程和进程

      本文链接:https://www.haomeiwen.com/subject/wmiekxtx.html