zoukankan      html  css  js  c++  java
  • python中的并发编程

    首先在python并发编程中,必须把创建子进程的部分使用if __name__ ==‘__main__’ 判断保护起来。这个原因是什么呢?

    在python中每一个py文件要么作为程序直接执行,要么被别的文件导入执行。if __name__ ==‘__main__’ 这个语句之下的程序只会在直接执行时才会走,如果是被别的文件导入该语句之下的程序就不会走。在windows下创建子进程会自动import启动它的这个文件,而import的时候又执行了整个文件,因此如果将process()直接写在文件中就会无限递归创建子进程报错。所以必须把创建子进程的部分使用if __name__ ==‘__main__’保护起来。

    一点小总结:

    通过学习了解IO密集型比较适合用多线程解决

    cpu密集型比较适合用多进程解决

    然而协程:使用进程中一个线程去做多个任务,微线程

    GIL:用于在进程中对所有线程加锁,保证同一时刻只能有一个线程被cpu调度

    异步IO 在一个线程去处理请求时,遇到IO阻塞,该线程就去处理别的请求去了,

    保证线程不会停下来等待,造成资源的浪费。

    通过学习了解IO密集型比较适合用多线程解决
    cpu密集型比较适合用多进程解决
    然而协程:使用进程中一个线程去做多个任务,微线程
    GIL:用于在进程中对所有线程加锁,保证同一时刻只能有一个线程被cpu调度

    异步IO 在一个线程去处理请求时,遇到IO阻塞,该线程就去处理别的请求去了,
    保证线程不会停下来等待,造成资源的浪费
    写出漂亮的博客就是为了以后看着更方便的。
  • 相关阅读:
    ASM认证与口令文件
    asm 兼容性、asm 主要参数管理
    最常见的5个导致 RAC 实例崩溃的问题
    oracle隐含参数的查看与修改
    三种 Failover 之 Client-Side Connect time Failover、Client-Side TAF、Service-Side TAF
    Oracle RAC TAF 无缝failover
    oracle rac的特征
    安装ORACLE时在Linux上设置内核参数的含义
    关于GCC的理解——On the understanding of the GCC
    java中的闭包和回调
  • 原文地址:https://www.cnblogs.com/zhaowei5/p/10452815.html
Copyright © 2011-2022 走看看