Process类

方法:

p.join()  # 感知一个子进程的结束

p.start()

p.is_alive()

p.terminate()  # 发出结束请求的瞬间不会立即结束

属性:

p.name

p.pid

p.deamon = Ture  # 在start之前

守护进程会随着主进程的代码执行完毕(不是结束,有可能等别的子进程)而结束

注意子进程输入问题

###########################################

 

import time
import json
from multiprocessing import Process,Lock

def buy(i,lock):
lock.acquire()
with open('ticket') as f:
dic = json.load(f)
time.sleep(0.1)
if dic['ticket']:
dic['ticket'] -= 1
print('%s买到票了'%i)
else:
print('%s没有票了'%i)
time.sleep(0.1)
with open('ticket','w') as f:
json.dump(dic,f)
lock.release()


if __name__ == '__main__':
lock = Lock()  # 实例化
for i in range(5):
p = Process(target=buy,args=(i,lock))
p.start()