zoukankan      html  css  js  c++  java
  • 多进程的调用(multiprocessing.Process)

    # multiprocessing是一个支持使用与threading模块类似的API来产生进程的包。multiprocessing包同时提供了本地和远程并发操作,通过使用子进程而非线程有效地绕过了全局解释器锁。因此,multiprocessing模块允许程序员充分利用给定机器上的多个处理器。
    import multiprocessing, time, os
    
    # def pro(name):
    #  print('hello', name, time.ctime())
    #
    # if __name__ == '__main__':
    #  l = []
    #  for t in range(4):
    #     t = multiprocessing.Process(target=pro, args=('alex',))
    #     t.start()
    #     l.append(t)
    #  for t in l:
    #     t.join()
    #  print('end...')
    
    
    # class MyProcess(multiprocessing.Process):
    #  def __init__(self, city):
    #     super(MyProcess, self).__init__()
    #     self.city = city
    #
    #  def run(self):
    #     '''继承同样重写run方法'''
    #     print('hello', self.name, time.ctime()) # self.name代表进程名MyProcess-1,MyProcess-2,MyProcess-3,MyProcess-4
    #
    # if __name__ == '__main__':
    #  l = []
    #  for t in range(4):
    #     t = MyProcess('China')
    #     # t.daemon = True # 和线程不一样的是,进程是daemon且不是方法而是属性,直接赋值True就行
    #     t.start()
    #     l.append(t)
    #  for t in l:
    #     t.join()
    #  print('end...')
    
    
    def info(title):
       print('title:', title)
       print('父进程ID:', os.getppid()) # os.getppid()所运行进程的父进程ID,主进程的父进程是pycharm程序
       print('该进程ID:', os.getpid()) # os.getpid()所运行进程ID
    
    def f(name):
       info(name)
       print('hello', name)
    
    if __name__ == '__main__':
       f('main process line')
       time.sleep(1)
       p = multiprocessing.Process(target=f, args=('alex',))
       p.start()
       p.join()
    while True: print('studying...')
  • 相关阅读:
    一个故事讲清NIO
    select()/poll() 的内核实现
    一个滑块验证破解网站并带例子
    第7章 数据清洗和准备
    关系检验
    数据分析常用的方法总结
    python数据清洗
    描述性绘图
    pandas常用方法总结
    各种windows软件下载
  • 原文地址:https://www.cnblogs.com/xuewei95/p/14862794.html
Copyright © 2011-2022 走看看