• 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  ,大家花点时间把上面这三方法,理解一下,记一下.

  • 相关阅读:
    手写一个call、apply、bind
    setTimeout
    meta标签及Keywords
    用VSCode插件来一键填满Github的绿色格子吧-AutoCommit
    前端工具-定制ESLint 插件以及了解ESLint的运行原理
    JS基础-全方面掌握继承
    JS基础-该如何理解原型、原型链?
    前端中等算法-无重复字符的最长子串
    前端面试 js 你有多了解call,apply,bind?
    博客图片失效?使用npm工具一次下载/替换所有失效的外链图片
  • 原文地址:https://www.cnblogs.com/python-lyy/p/10263492.html
Copyright © 2020-2023  润新知