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

    1、cpu与进程关系

      单核CPU每次只运行一个进程,8核cpu每次运行8个进程

    2、如何查看进程:

      window系统--任务管理器--进程--里面每一项都是一个进程

      linux系统 ps -ef 

    3、什么场景使用多线程

      需要并发处理的场景

      -  性能测试

      -  网络爬虫

      -  功能测试框架的并发执行

      -  多目录大文件的信息统计

      -  服务器端编程

    4、同步和异步 

      同步与异步针对的是函数/任务的调用方式:同步就是当一个进程发起一个函数(任务)调用的时候,一直等到函数(任务)完成,而进程继续处于激活状态。而异步情况下是当一个进程发起一个函数(任务)调用的时候,不会等函数返回,而是继续往下执行当,函数返回的时候通过状态、通知、事件等方式通知进程任务完成。

     总结来说,请求发出后,是否需要等待结果,才能继续执行其他操作。

     5、阻塞和非阻塞   

      阻塞与非阻塞针对的是进程或线程:阻塞是当请求不能满足的时候就将进程挂起,而非阻塞则不会阻塞当前进程

             总结:同步执行一般都会有阻塞,但也有可能没阻塞;异步执行也有可能有阻塞,也可能没有阻塞。

     6、同步阻塞、同步非阻塞,异步阻塞、异步非阻塞。

     - 同步阻塞: 老张把水壶放到火上,就坐在那里等水开,开了之后我再去看电视

    - 同步非阻塞:实际上是效率低下的。因为老王需要不断的在看电视与烧水之间来回跑动,看一下电视,又要去看一下水烧开                             没有,这样来回跑很多次,在程序中,程序需要在这两种不同的行为之间来回的切换,效率可想而知是低下的。

    - 异步阻塞:老张把响水壶放到火上,然后就坐在旁边等着听那个烧开的提示音

    - 异步非阻塞:老张把响水壶放到火上,去客厅看电视,水壶响之前不再去看它了,响了再去拿壶。

    四种总结:

    同步阻塞形式:效率是最低的。拿上面的例子来说,在烧水的过程中,什么别的事都不做。

    同步非阻塞形式:实际上是效率低下的。因为老王需要不断的在看电视与烧水之间来回跑动,看一下电视,又要去看一下水烧开                             没有,这样来回跑很多次,在程序中,程序需要在这两种不同的行为之间来回的切换,效率可想而知是低下的。

    异步阻塞形式:异步操作是可以被阻塞住的,只不过它不是在处理消息时阻塞,而是在等待消息通知时被阻塞。

                           这个效率其实跟同步阻塞差不多的。

    异步非阻塞形式:效率更高。因为老王把水烧好之后就不用管了,可以安安心心去看电视,不用来回奔波看水烧开了没,因为                       水烧开了会有提示告诉他水烧好了,这样效率岂不是更高。

     7、 实现多任务的方式

      - 多进程模式

      - 多线程模块

      - 协程

    8、三者之间的关系

      进程》》线程》》协程

    9、进程和线程使用场景

      进程:用于计算密集型

      线程:耗时操作,爬虫,IO

      

    上班求生存,下班求发展
  • 相关阅读:
    C# 灵活切换开发/测试/生成环境web.config
    c# sqlserver 删除大批量数据超时
    vue 上传进度显示
    sqlserver the name is not a valid identifier error in function
    WEBAPI 设置上传文件大小
    vue 获取视频时长
    webapi 导入excel处理数据
    vscode 通过ftp发布vue到azure服务器
    C# 汉字转拼音
    静态代码扫描工具
  • 原文地址:https://www.cnblogs.com/ljf520hj/p/12748158.html
Copyright © 2011-2022 走看看