zoukankan      html  css  js  c++  java
  • python--进程

    最近学习了python中的进程,简单总结下笔记

    1、首先什么是进程?

    进程是资源分配的单位,比如打开一个qq是一个进程,打开2个qq是两个进程

    2、在python中如何创建进程

    from multiprocessing import Process
    import os
    
    def work():
        print("------这个是任务-----{}".format(os.getpid()))
    
    
    if __name__ == '__main__':
        p = Process(target=work)
        p1 = Process(target=work)
        p1.start()
        p.start()

    执行结果:

    ------这个是任务-----42860
    ------这个是任务-----47156

    可以看出这是两个进程

    3、创建进程池

    from multiprocessing import Pool
    import os
    import time
    
    
    def work():
        print("------这个是任务-----{}".format(os.getpid()))
        time.sleep(1)
    
    
    if __name__ == '__main__':
        pool = Pool(5)  # 创建进程池,里面有5个进程
        for i in range(10):
            pool.apply_async(func=work)
    
        pool.close()  # 关闭进程池,让其不再接受任务
        pool.join()

    4、如何使用进程池中的队列

    import os
    from multiprocessing import Pool, Manager
    import time
    
    a = 0
    
    
    def work(q):
        cc = q.get()
        print("-----------这个是任务{}-------{}".format(cc, os.getpid()))
        time.sleep(1)
    
    
    if __name__ == '__main__':
        p = Pool(5)
        q = Manager().Queue()  # 使用进程池中的队列
        for i in range(10):
            q.put(a)  # 添加任务到队列中去
            a += 1
        for n in range(q.qsize()):  # 循环队列里面的任务数
            p.apply_async(func=work, args=(q,))  # 使用进程池中的进程来执行队列中的任务
        p.close()  # 关闭进程池,不再接受执行任务
        p.join()
  • 相关阅读:
    学习canvas过程中的小菜鸟
    小菜鸟谈html语义化
    mui常用方法
    mui的侧滑菜单如何禁用手势侧滑
    ajax 传递数组参数
    LNMP状态管理命令
    LNMP相关软件目录及文件位置
    ubuntu常用命令
    Ubuntu设置允许root用户登录
    linux一键安装web环境(sh-1.3.0)
  • 原文地址:https://www.cnblogs.com/LCboss/p/12690617.html
Copyright © 2011-2022 走看看