zoukankan      html  css  js  c++  java
  • day10_多进程、协程

    import multiprocessing
    import time


    def test():
    time.sleep(2)
    print('over')


    if __name__ == '__main__': # windows必须加上这行,要不然会报错,mac不用加
    for i in range(5):
    p = multiprocessing.Process(target=test)
    p.start()

    while len(multiprocessing.active_children()) != 0: # 等待子进程结束
    pass

    print(multiprocessing.cpu_count()) # 打印cpu的核数
    print(multiprocessing.current_process()) # 打印当前的进程,打印出<_MainProcess(MainProcess, started)>
    print('哈哈')

    多线程:
              适用于IO密集型任务,IO密集型(频繁的操作IO),包括网络IO和磁盘IO,网络上传下载,磁盘读写

    多进程:
              适用于CPU密集型任务,能利用多核CPU,查询表里的数据来排序就是cpu在工作

    简单点说协程是进程和线程的升级版,进程和线程都面临着内核态和用户态的切换问题而耗费许多切换时间,而协程就是用户自己控制切换的时机,不再需要陷入系统的内核态

  • 相关阅读:
    explicit
    boolalpha 和 noboolalpha
    C++ 头文件一览
    C++ I/O库总结
    Error:collect2:ld returned 1 exit status (总结)
    常用目录的作用
    硬盘分区与硬软链接
    POJ3694 Network(Tarjan双联通分图 LCA 桥)
    2016"百度之星"
    2016"百度之星"
  • 原文地址:https://www.cnblogs.com/laosun0204/p/8597575.html
Copyright © 2011-2022 走看看