Python 多进程操作

Python除了支持多线程操作,也支持多进程操作,

运行这个代码

from multiprocessing import Process
import time

def run(x):
    while 1:
        print("i'm %d", x)
        q.put(x, True)
        time.sleep(5)


if __name__ == '__main__':
    procList =[]
    for x in range(10):
        proc = Process(target=run, args=(x,))
        proc.start()
        procList.append(proc)

    print("comsume proc.....", len(procList))

    while len(procList):
        proc = procList.pop(0)
        print("terminate proc,,,")
        proc.terminate()
        time.sleep(2)

从任务管理器我们可以看到,里面使用了很多的python进程。这样我们可以利用多核的CPU来同时运行。

image.png

Python创建的进程有独立的变量空间,所以,就算在多进程操作中,python的进程间变量也不会共享,如果想要共享,就必须使用Queue和Pipe。

如下代码:

from multiprocessing import Process, Queue
import time

q = Queue()

def run(x, q):
    global r
    while 1:
        print("i'm %d", x)
        q.put(x)
        print("shareBlock len is  %d" % q.qsize())
        time.sleep(5)


if __name__ == '__main__':
    procList =[]
    for x in range(15):
        proc = Process(target=run, args=(x, q))
        proc.start()
        procList.append(proc)

    print("comsume proc.....", len(procList))

    while len(procList):
        proc = procList.pop(0)
        print("terminate proc,,,")
        proc.terminate()
        time.sleep(2)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容