• 进程/线程/协程/的区别


    • 都可以提高并发能力
    • 进程/线程是计算机中真实存在的 协程是程序员创造出来的
    • 协程又可以称为‘微线程’,实际上是让一个线程轮番去执行一些任务
    • 进程是计算机资源分配的最小单位
    • 线程是计算机中可以被CPU调度的最小单位
    • 一个线程中可以有多个协程
    • 一个进程中可以有多个线程,一个进程中的线程可以共享进程中的资源,一个进程中至少一个线程(一个应用程序里至少一个进程)
    • 默认进程之间无法进行资源共享,如果想要通讯可以基于:文件,网络,Queue
    • python中因为有GIL锁 同一时刻保证一个进程中只有一个线程可以被CPU调度
    • 计算密集型(利用多核)多进程
    • IO密集型(不利用多核)多线程/协程+IO切换
    • 注意:单纯的协程没办法提高并发,只是代码之间的来回切换,加上IO自动切换才有意义

    rom gevent import monkey
    monkey.patch_all()

    import gevent
    import time

    def eat():
    print('eat food 1')
    time.sleep(3)
    print('eat food 2')

    def play():
    print('play 1')
    time.sleep(3)
    print('play 2')

    g1 = gevent.spawn(eat)
    g2 = gevent.spawn(play)
    gevent.joinall([g1, g2])

  • 相关阅读:
    字符串动手动脑
    类与对象课后思考
    java动手动脑课后思考题
    java思考题
    《大道至简第二章读后感》
    从命令行接收多个数字,求和之后输出结果
    《大道至简》读后感
    团队项目成员和题目
    软件工程个人作业04
    软件工程个人作业03
  • 原文地址:https://www.cnblogs.com/shiguanggege/p/11550829.html
Copyright © 2020-2023  润新知