zoukankan      html  css  js  c++  java
  • IO多路复用和协程

    1、IO多路复用

      作用:检测多个socket是否已经发生变化(是否连接成功/是否已经获取数据)

    什么是进程、线程、协程以及它们的区别?

    进程是资源分配的最小单元,其作用是进行数据隔离,

    线程是cpu调度的最小单元,其作用主要是执行某个任务,

    一个应用程序可以有多个进程,一个进程可以有多个线程,在其他语言中几乎很少用进程,都是用多线程,而对于python来说,IO操作主要是用多线程实现,计算密集型操作主要是用多进程实现,主要原因是python中存在GIL锁,GIL锁的作用就是保证一个进程中同一时刻只有一个线程被cpu调度,所以在python中想要利用cpu的多核优势就是开多个进程。

    在后来程序员级别的人为了让代码更牛逼,创建了一个东西叫协程,

    协程这个东西本身不存在,是程序员自己创造出来的,协程可以对代码的执行顺序进行控制,本身这个东西存在没有意义,但是协程要是和 IO切换放在一起就了不得了,遇到 IO操作就切换,相当于把一个线程分片,所达到的效果是线程一直没有停,一直在工作,

    这就是进程、线程、协程的本质区别。

    在python中用协程的时候会有一个模块叫greenlet,协程加IO自动切换的模块叫gevent。

  • 相关阅读:
    TCP的流量控制
    [数组]数组元素分割
    [折半查找]排序数组中某个元素出现次数
    [队列]判断出栈序列
    [排序算法]堆排序
    [树结构]有实际用途的树的计算公式
    重写重要的库函数
    [链表]同时遍历两个链表
    [查找]二分查找
    [数组]数组元素置换方法
  • 原文地址:https://www.cnblogs.com/shanae/p/9642519.html
Copyright © 2011-2022 走看看