• 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在工作

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

  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/laosun0204/p/8597575.html
Copyright © 2020-2023  润新知