zoukankan      html  css  js  c++  java
  • 进程、线程、协程

    面试的时候,经常会被问到:进程、线程、协程(纤程)有什么区别?

    很多小伙伴会说:进程就是一个程序运行起来的状态,是一个后台程序;线程是一个进程中的不同的执行路径。这样说没什么毛病,但是相对不够专业。

    首先,我们得了解计算机底层层面的逻辑图,然后再深刻理解:进程、线程、协程

    专业回答:

    • 进程:是操作系统资源分配的基本单位,分配了独立的内存空间
    • 线程:是操作系统资源调度的基本单位,cpu分配的基本单位,线程共享进程的资源,线程没有自己独立的内存空间
    • 协程:是用户态的线程,是线程中的线程,切换和调度不需要经过OS(操作系统);轻量级的线程

    协程的优点:

    1. 占用资源少,线程大约需要1M的资源,而协程只需要4k
    2. 切换比较简单
    3. 可以启动很多协程,线程启动1万多线程会很卡,基本不可能,资源都消耗在线程切换上;但线程10万+都没有问题

    协程的应用场景:

    协程 vs 线程池:很短的计算任务,不需要和内核打交道,并发量高!


    参考文档:

    http://mashibing.com/doc/

  • 相关阅读:
    Loadrunner 参数化&参数化策略&参数化mysql
    Loadrunner 录制脚本注意事项
    Centos7卸载nginx及php、php-fpm方法
    卸载apache
    apache配置
    centOs
    ajax-php跨域请求
    安装php
    apache
    java集合类,HashMap,ArrayList
  • 原文地址:https://www.cnblogs.com/shengmading/p/14898929.html
Copyright © 2011-2022 走看看