python进程--传参,for循环创建,join方法

  OK上一篇我们简单学了一下    进程    的创建方式,那么这一篇,我们把其他一些边角料..不对,不是边角料..........也是很重要的一些小知识点

也是经常用的。

  话不多说直接进入主题

传参:

   from    multiprocessing     import     Process     这一步大家还记得吧,对喽,不管进程写那些东西,我们第一步先写这个,导入Pocess

先来个函数的哈!   这是第一种,这一种里面有两种传参对象
 def   f1(n):
   print(n)

 if __name__ == '__main__':
   p1 = Process(target=f1,args=("鸡蛋灌饼")        #   先来个字符串的

   p1.start()
   p1 = Process(target=f1,kwargs={'n':'大力'})      #  再来个字典的.
   p1.start()

这是第一只种,   这是一个进程哈,都是p1,可不是两个进程,大家别搞混啦哈,只是为了演示两种传参对象,好了说第二种传参的方式,

再来个类的:

class MyProcess(Process):

  def __init__(self,name):
  super().__init__() #别忘了执行父类的init
  self.name = name

  def run(self):
  print('宝宝and%s不可告人的事情'%self.n)

if __name__ == '__main__':

  p1 = MyProcess("炸鸡")           #对,上一篇见过,就是个这样的.就这
  p1.start()

传参就是这两种了,很简单,大家好好记一下,多敲几遍

接下来就是for 循环创建了,因为我们工作,平时用都不可能说就创建一个两个 的进程,

所以用for循环能快速创建多个进程

from multiprocessing import Process

  def   f1(i):
    print(i)
  def   f2(i)
    print

if __name__ == '__main__':

  for  i   in   range(20):               在这块加个for循环, rang是范围,   ()里面写创建的个数  20个   剩下两步都没变,
  p1 = Process(target=f1,args=(i,))
  p1.start()

以上就是 for 循环创建进程了   创建完,我们就有20个进程了   大家可能觉得很抽象,20个进程在哪呢,我咋就没看呢,

创建 20个进程都是在底层内存里面,创建好的, 这里理解不了没关系,往后慢慢了解就知道了

接下来是join方法

join在字符串里面是拼接的意思,在这里是是阻断的意思

from   multiprocessing   import   Process

  def    f1():
    print('啤酒')

  def   f2():
    print('可乐')

if __name__ == '__main__':

  p1 = Process(target=f1,)
  p1.start()
  p1.join()                              #    这一步呢就是主进程等待子进程运行完才继续执行,首先我们要知道在运行进程的时候,

                                                       主进程的代码运行速度是非常快的,会比子进程还要快的,如果不阻塞的话,可能子进程的功能还没实现,就先把主进程的代码

                打印出来了,所以这时候就需要join阻隔了,让子进程先执行.   对,就是这样

  p2 = Process(target=f2,)         #这是第二个进程       join写在哪个进程下面,就先执行哪个
  p2.start()
  p2.join()
  print('我要等了...等我的子进程...')       这一步就是传说中的主进程 代码
  print('我是主进程!!!')                            这一句也是

OK  ,大家花点时间把上面这三方法,理解一下,记一下.

原文地址:https://www.cnblogs.com/python-lyy/p/10263492.html