py 的 第 34 天

1.进程,首先说了一下进程怎么写的,这个和线程写的不一样

import multiprocessing
data_list = []

def taskarg):
    data_list.appendarg)
    printdata_list)


def run):
    for i in range10):
        p = multiprocessing.Processtarget=task,args=i,))
        # p = threading.Threadtarget=task,args=i,))
        p.start)

if __name__ == '__main__':
    run)

 2。进程间的数据共享,本来是不可共享的

import multiprocessing          这是线程模块
import threading
import queue            本来是queue。Queue是一个队列,但是线程好使,在这不好使了
import time

q = multiprocessing.Queue)

def taskarg,q):
    q.putarg)


def run):
    for i in range10):
        p = multiprocessing.Processtarget=task, args=i, q,))
        p.start)

    while True:
        v = q.get)
        printv)
run)
# ##################### 进程间的数据共享:Manager #####################
"""
def taskarg,dic):
    time.sleep2)
    dic[arg] = 100

if __name__ == '__main__':
    m = multiprocessing.Manager)
    dic=m.dic)   这是一个字典   只有这个字典才通用  d={}这样在这写不行,不能大家一起用
    
    process_list = []
    for i in range10):
        p = multiprocessing.Processtarget=task, args=i,dic,))
        p.start)

        process_list.appendp)

    while True:
        count = 0
        for p in process_list:
            if not p.is_alive):      。is_alive是否还活着
                count += 1
        if count == lenprocess_list):
            break
    printdic)
    # ...
"""                                            刚才用的manager中queue方法,

Published by

风君子

独自遨游何稽首 揭天掀地慰生平