zoukankan      html  css  js  c++  java
  • python多进程,以及进程池并发

    模拟多进程

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    import time
    from multiprocessing import Process

    def sayHi(name):
      print 'Hi my name is %s' %name
      time.sleep(10) #时间长,会通过ps看到进程里边跑了10来个python,一个主进程,然后fork出10个子进程
    for i in range(10):
      p = Process(target=sayHi,args=(i,))
      p.start()
      #p.join #如果不加,则会在屏幕上显示比较乱,谁先完成谁就会先显示出来,进行一个屏幕抢占。

    模拟多进程并发

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    import time
    from multiprocessing import Process,Manager,Pool

    def run(num):
      time.sleep(1)
      return num*num

    p = Pool(processes = 5) #5个进程,一个主进程fork5个子进程,进程池概念,每次只执行5个进程,进程数跟着cpu核数走
    result_list = []
    for i in range(100):
      result_list.append(p.apply_async(run,[i])) #p.apply_async并发,这里总共需要并发100次
    for res in result_list:
      print res.get()

  • 相关阅读:
    I
    H
    G
    F
    E
    论js里面的for循环
    js常见问题之为什么点击弹出的i总是最后一个
    array类型的方法
    string类型的方法
    for in在对象和数组中的应用
  • 原文地址:https://www.cnblogs.com/i1991/p/6273584.html
Copyright © 2011-2022 走看看