进程
今日思维导图
练习代码
进程实现多任务
importmultiprocessing
importthreading
deftest1(num):
foriinrange(num):
print("---test1%d"%i)
deftest2(num):
foriinrange(num):
print("---test2%d"%i)
defmain():
"""创建子进程只需要把库换成multiprocessing.Proess即可"""
#t1=threading.Thread(target=test1,args=(5,))
#t2=threading.Thread(target=test2,args=(10,))
p1=multiprocessing.Process(target=test1,args=(5,))
p2=multiprocessing.Process(target=test2,args=(10,))
p1.start()
p2.start()
if__name__=='__main__':
main()
获取进程的pid
importmultiprocessing
importos
importtime
"""
获取进程的pid
os.getpid可以获取当前进程的进程号
os.getppid可以获取当前进程父进程的进程号
"""
deftest():
whileTrue:
print("--当前进程是%s,父进程是%s"%(os.getpid(),os.getppid()))
time.sleep(1)
defmain():
#创建进程
p=multiprocessing.Process(target=test)
p.start()
print("主程序进程是%s"%os.getpid())
pass
if__name__=='__main__':
main()
进程传递参数
importmultiprocessing
"""
Process传递的参数可以是多值参数
*args:代表多值元组
**kwargs:打包多值字典
"""
deftest(a,*args,**kwargs):
print(a)
fornuminargs:
print(num)
print(kwargs)
defmain():
p=multiprocessing.Process(target=test,args=(1,2,3,4,5),kwargs={"name":"xiaohei"})
p.start()
if__name__=='__main__':
main()
进程之间不共享全局变量
importos
importtime
importmultiprocessing
"""