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。

  • 相关阅读:
    数据查询语句
    数据操作语句
    数据定义语句
    linux的常用命令
    NIO/IO/AIO阻塞/非阻塞/同步/异步
    XCode使用自带SVN,SVN命令
    正则表达式大全——持续更新中。。。
    sql语句优化
    sql一些语句性能及开销优化
    高质量图片无损压缩算法
  • 原文地址:https://www.cnblogs.com/shanae/p/9642519.html
Copyright © 2011-2022 走看看