Process

我们上一节说的fork()函数 因为Windows上面没有这个函数没有就不支持我们跨平台的去运行。所以我们一般使用Process来创建子进程。
multiprocessing模块就是跨平台版本的多进程模块。
multiprocessing模块提供了⼀个Process类来代表⼀个进程对象,下⾯的例⼦ 演示了启动⼀个⼦进程并等待其结束:

  1 from multiprocessing import Process
  2 import time
  3 
  4 def test():
  5     while True:
  6         print("---1---")
  7         time.sleep(1)
  8 
  9 p = Process(target=test)
 10 p.start() #让这个进程来执行test函数里的代码
 11 
 12 while True:
 13     print("---main---")
 14     time.sleep(1)

在这里插入图片描述
join括号中不携带参数,表示⽗进程在这个位置要等待p1进程执⾏完成后
执行结果:
在这里插入图片描述
创建⼦进程时,只需要传⼊⼀个执⾏函数和函数的参数,创建⼀个 Process实例,⽤start()⽅法启动,这样创建进程⽐fork()还要简单。 join()⽅法可以等待⼦进程结束后再继续往下运⾏,通常⽤于进程间的同步。

在这里插入图片描述
进程的创建-Process⼦类

 18 from multiprocessing import Process
 19 import time
 20 
 21 class newProcess(Process):
 22     def run(self): 
 23         while True:
 24             print("---1---")
 25             time.sleep(1)
 26 
 27 p = newProcess()
 28 p.start() #虽然上面没有start函数但是上面Process父类里面有start方法,而这个start方法里面隐藏了表现形式然后从start里面调取run方法,通过父类的start调取run方法父类就相当于一个端口
 29 
 30 while True:
 31     print("---main---")
 32     time.sleep(1) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值