zoukankan      html  css  js  c++  java
  • Python 多进程编程之multiprocessing--Process

    Python 多进程编程之multiprocessing

    1,Process

    • 跨平台的进程创建模块(multiprocessing), 支持跨平台:windowx/linux
    • 创建和启动
            创建格式:p=Process(target=函数名)
      ----def __init__(self, group=None, target=None, name=None, args=(), kwargs={}):
      group:分组(基本不用)
      target:表示这个进程实例所调用的对象.
      name:给进程起一个别名
      args:参数,表示调用对象的位置参数元组
      kwargs:表示调用对象的关键字参数字典

      注意:target后是函数名,一定要记住,是函数名,没有括号
      带括号的话,子进程就没有创建,直接在主进程执行了
            启动:p.start()

    • ----在主进程等待指令之前加入     p.join()
      这个命令叫做"阻塞",意思是让主进程
      等待子进程结束之后,再执行join()之后的语句
      ----可以设置等待子进程时间    p.join(4)
      设置时间之后,主进程的阻塞时间只有4秒
    • 进程对象.is_alive()
      检测进程是否活着
      ----会有2个返回值
      True:活着
      False:死了
    • 进程对象.terminate()
      ----不管进程是否结束,
      强制终止进程
    • 实例:从键盘输入一个整数,分别开启两个进程来计算这个数的累加和和阶乘。
      (第一个进程用系统提供给我们的类,第二个进程需要自己定义)
    • from multiprocessing import Process
      
      #方法1:
      def sumToN(n):
          s = 0
          for i in range(1,n+1):
              s += i
          print("累加和:%d"%s)
      
      #方法2:
      class JieCheng(Process):
          def __init__(self,n):
              Process.__init__(self)
              self.n = n
      
          def run(self):
              j = 1
              for i in range(1, self.n + 1):
                  j *= i
              print("%d!=%d"%(self.n, j))
      
      if __name__ == "__main__":
          #输入一个数:
          str_num = input("请输入一个数:")
          num = int(str_num)
      
          #创建进程--计算
      #方法1: 系统提供给我们的类
      p1 = Process(target=sumToN,args=(num,))
      p1.start()

      #方法2:自己定义的类,也叫继承系统类 p2 = JieCheng(num) p2.start()
  • 相关阅读:
    《游戏改变世界》笔记
    2017第6周日
    换个角度看执行力
    怎样拥有执行力和高效能
    提高个人执行力的五个关键
    Apache服务器部署多个进程
    IE的Cookie目录和临时缓存目录的关系
    IE/Firefox/Chrome等浏览器保存Cookie的位置
    在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)
    如何设置win7系统的文件夹为系统文件,从而隐藏文件夹
  • 原文地址:https://www.cnblogs.com/Fantinai/p/8428550.html
Copyright © 2011-2022 走看看