美文网首页
多任务-进程

多任务-进程

作者: 咏远瑞智 | 来源:发表于2018-06-04 23:21 被阅读0次

    进程是资源分配的基本单元,进程包括资源和数据。而线程只有数据。他也能完成多任务。

    使用方法:导入multiprocessing中的Process类。

                        import multiprocessing                           

                        创建对象

                         p=multiprocessing.Process (target=函数引用,args=(参数1,参数2))

                          开启进程

                          p.start()

    进程间不能共享数据,要想共享数据,需要使用消息队列。Queue

    使用方法:from multiprocessing import Queue

                        创建消息队列对象q =Queue(3)   3表示最多可接收三条数据

                        存放数据 q.put(‘数据’)

                        取出数据 q.get()

    使用put和get,程序执行完会阻塞,put_nowait()和get_nowait(),程序不会阻塞,会报错。

    进程池Pool。当需要创建的进程数量较大时,需要使用到进程池。可以指定进程池接收的最大进程数,当进程池没有满的时候,会不断接收进程,当进程池装满的时候,别的进程会进入等待状态,直到进程池里面的某个进程执行结束才会进入到进程池中执行。

    使用方法:导入模块from multiprocessing import Pool

                        创建进程池对象po = Pool(3)  3表示进程池能最大接收3个进程

                        开启进程池 po.apply_async(函数引用,(参数,))

                        关闭进程池 po.close()

                        主进程等待进程池中所有进程执行结束 po.join()

    进程池中的消息队列 Queue,配合进程池一起使用

    使用方法:from multiprocessing import Manager, Pool

    创建进程池消息队列对象 q = Manager().Queue()

    相关文章

      网友评论

          本文标题:多任务-进程

          本文链接:https://www.haomeiwen.com/subject/sqyusftx.html