zoukankan      html  css  js  c++  java
  • 【Rollo的Python之路】Python 多进程 学习笔记 multiprocessing

    Python 多进程:

    由于GIL的存在,python中的多线程并不是真正的多线程,如果想要充分地使用多核CUP的资源,在python里面大部分情况需要使用多进程,Python提供了非常好的多进程包multiprocessing.

    只需要定义一个函数,Python会完成其他所有的事情。

    import time
    from multiprocessing import Process
    
    def f(name):
        time.sleep(1)
        print("hello",name,time.ctime())
    
    if __name__ == "__main__":
        p_list=[]
        for i in range(3):
            p = Process(target=f,args=('rollo',))
            p_list.append(p)
            p.start()
    
        for p in p_list:
            p.join()
        print('end')

    用面向对象的方法创建多进程:

    from multiprocessing import Process
    import time
    
    class MyProcess(Process):
        def __init__(self):
            super(MyProcess,self).__init__()
    
        def run(self):
            time.sleep(1)
            print('hello',self.name,time.ctime())  #self.name 进程名,在Process类里面已经定义好了,也可以修改的。
    
    if __name__ == '__main__':
        p_list = []
    
        for i in range(3):
            p = MyProcess()
            p.start()
            p_list.append(p)
    
        for p in p_list:
            p.join()
    
        print('end')

    修改进程名:self.name

    from multiprocessing import Process
    import time
    
    class MyProcess(Process):
        def __init__(self,name):
            super(MyProcess,self).__init__()
            self.name = name
    
        def run(self):
            time.sleep(1)
            print('hello',self.name,time.ctime())  #self.name 进程名,在Process类里面已经定义好了,也可以修改的。
    
    if __name__ == '__main__':
        p_list = []
    
        for p in range(3):
            p = MyProcess('123')
            p.start()
            p2 = MyProcess('456')
            p2.start()
            p_list.append(p)
    
        for p in p_list:
            p.join()
    
        print('end')
  • 相关阅读:
    DS博客作业02--栈和队列
    指针
    C语言博客作业04--数组
    函数
    留言板
    第三周-自主学习任务-面向对象基础与类的识别
    DS博客作业05--查找
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
  • 原文地址:https://www.cnblogs.com/rollost/p/10970475.html
Copyright © 2011-2022 走看看