python多进程并行执行和顺序执行的时间测试

#_*_coding:utf-8_*_

import time
from  multiprocessing import Pool
from threading import Thread

def func1(fn):
    time.sleep(1)
    return fn * fn

if __name__ == "__main__":
    a = [1,2,3,4,5,6]
    print "顺序执行的方式开始..."
    s = time.time()
    for i in a:
        func1(i)
    el = time.time()
    print "顺序执行时间为:",int(el - s)

    print "创建多个进程,并行执行开始"
    pool = Pool(5) #创建拥有5个进程数量的进程池,也就是说可以同时跑5个线程
    p1 = pool.map(func1,a)
    pool.close() #关闭进程池,不再接受新的进程
    pool.join() #主进程阻塞等待子进程的退出
    e3 = time.time()
    print "多进程并行时间为:", int(e3 - el)

    print p1
时间: 2024-12-28 12:59:43

python多进程并行执行和顺序执行的时间测试的相关文章

Python流程控制-1 顺序执行

流程控制指的是代码运行逻辑.分支走向.循环控制,是真正体现我们程序执行顺序的操作.流程控制一般分为顺序执行.条件判断和循环控制. 顺序执行 Python代码在执行过程中,遵循下面的基本原则: 普通语句,直接执行: 碰到函数,将函数体载入内存,并不直接执行 碰到类,执行类内部的普通语句,但是类的方法只载入,不执行 碰到if.for等控制语句,按相应控制流程执行 碰到@,break,continue等,按规定语法执行 碰到函数.方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码 if _

单线程和多线程在pc上执行花费时间测试

1 package Thread; 2 3 import junit.framework.Assert; 4 import org.junit.Test; 5 6 import java.util.concurrent.CountDownLatch; 7 import java.util.concurrent.Executor; 8 import java.util.concurrent.Executors; 9 10 /** 11 * Created by csophys on 15/7/11

python try except else finally 执行顺序详细分析

学习python或者其他有异常控制的编程语言, 大家很有可能说try except finally(try catch finally)的执行很简单,无非就是有异常的话执行except, finally无论是否有异常都会执行, 大致上原则是这样, 但是如果涉及到更加详细的复杂的路径,加上return 语句,就没有那么简单了. 1. 没有return 语句的情况 print 'this is a test of code path in try...except...else...finally'

(转)python多进程、多线程编程

1 概念梳理: 1.1 线程 1.1.1 什么是线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务.一个线程是一个execution context(执行上下文),即一个cpu执行时所需要的一串指令. 1.1.2 线程的工作方式 假设你正在读一本书,没有读完,你想休息一下,但是你想在回来时恢复到当时读的具体进度.有一个方法就是记下页数.行数与字数这三个数值,这

Python多进程与多线程

1.基本概念 2.多线程内容方法 3.多进程内容方法 1.基本概念 1.1 线程 1.1.1 什么是线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流, 一个进程中可以并发多个线程,每条线程并行执行不同的任务.A thread is an execution context, which is all the information a CPU needs to execute a stream of instru

Python多进程使用

[Python之旅]第六篇(六):Python多进程使用 香飘叶子 2016-05-10 10:57:50 浏览190 评论0 python 多进程 多进程通信 摘要:   关于进程与线程的对比,下面的解释非常好的说明了这两者的区别:     这里主要说明关于Python多进程的下面几点: 1 2 3 4 5 6 7 1.多进程的使用方法 2.进程间的通信之multiprocessing.Manager()使用 3.Python进程池 ... 关于进程与线程的对比,下面的解释非常好的说明了这两者

【Python之旅】第六篇(六):Python多进程使用

关于进程与线程的对比,下面的解释非常好的说明了这两者的区别: 这里主要说明关于Python多进程的下面几点: 1.多进程的使用方法 2.进程间的通信 3.Python进程池 (1)比较简单的例子 (2)多个进程多次并发的情况 (3)验证apply.async方法是非阻塞的 (4)验证apply.async中的get()方法是阻塞的 1.多进程的使用方法 直接给出下面程序代码及注释: from multiprocessing import Process    #从多进程模块中导入Process

python多进程那点事儿【multiprocessing库】

前言:项目中有个需求需要对产品的日志处理,按照产品中日志的某些字段,对日志进行再次划分.比如产品的日志中含有字段id,tag=1,现在需要把tag是基数的放到一个文件中,tag是偶数的放入一个文件中.这就涉及到多个文件的读写操作,一个文件一个文件读取写入那时间太久了,公司配备的单机,跑了半个多小时,光标还是一直在闪闪闪[你懂得].没办法了,还是用多进程跑吧.这就得对python中的多进程从新回顾一遍了. Q1:为什么不用多线程呢? A1:这个就需要了解python多线程的实现原理了,通过在其解释

第十五章 Python多进程与多线程

15.1 multiprocessing multiprocessing是多进程模块,多进程提供了任务并发性,能充分利用多核处理器.避免了GIL(全局解释锁)对资源的影响. 有以下常用类: 类 描述 Process(group=None, target=None, name=None, args=(), kwargs={}) 派生一个进程对象,然后调用start()方法启动 Pool(processes=None, initializer=None, initargs=()) 返回一个进程池对象