进程是操作系统分配资源的基本单位 ,线程是操作系统任务调度执行的基本单位
一:multiprocessing模块
1-1:Process类:
创建进程对象的参数:
target:指定任务函数
name:设置线程名
args:给任务函数传参
kwargs:给任务函数传参
daemon:设置是否作为守护进程
1-2:方法:
start:启动进程执行
join:设置主线程等待子进程执行
run:设置线程执行的逻辑
clase:关闭进程
kill:关闭进程
1-3:进程对象常用属性
name:进程名
pid:进程编号
二、进程之间数据共享
from multiprocessing import Process,Queue
"""
进程之间数据传输只能使用进程模块中的队列multiprocessing.Queue
"""
a = 0
def work1(q):
a = q.get()
for i in range(2000):
a += 1
q.put(a)
print("work中的a:",a)
def work2(q):
a = q.get()
for i in range(10):
a += 1
q.put(a)
print("work2中的a:",a)
def main():
a = 0
que = Queue()
que.put(a)
p1 = Process(target=work1,args=(que,))
p2 = Process(target=work2,args=(que,))
p1.start()
p2.start()
p1.join()
p2.join()
a = que.get()
print("主进程中:a",a)
if __name__ == '__main__':
main()
网友评论