`
heipark
  • 浏览: 2097092 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python高级编程——多进程包multiprocessing

 
阅读更多

1. 使用map方法

 

import multiprocessing
import time

def f(x):
    time.sleep(2)
    print x

if __name__ == '__main__': 
  pool = multiprocessing.Pool(processes=5) 
  pool.map(f, xrange(10))
  •  并发5个进程
  • map方法会依次将参数二数组每个元素传入参数1方法中
  • 如果将map()替换为map_async(),则方法不会阻塞,而是直接执行main进程后面的代码,所以要配合pool.close()和pool.join()一起使用。close()方法是使pool不再接受新任务;join()方法是阻塞main进程等待子进程执行完成才可以运行后面code

2. 使用apply方法

 

 

import multiprocessing
import time
 
def func(msg):
    print msg
    time.sleep(1)
 
if __name__ == "__main__":
    print 'start main-process'
    pool = multiprocessing.Pool(processes=4)
    for i in xrange(10):
        msg = "hello %d" %(i)
        pool.apply_async(func, (msg, ))
    pool.close()
    pool.join()
    print "Sub-process(es) done."
    print 'Main-process done.'

 

  •  apply_async和apply方法区别是前者不会阻塞main进程,需要用pool.close()和join()方法阻塞等待子进程执行。
  • apply与map方法相比,它只是调用方法和参数,而map方法会将数组参数迭代传给被调用方法
  • pool.apply_async(func, (msg, )) 这行msg后面的逗号是不能省略的,否则不会执行func方法

--end

 

分享到:
评论

相关推荐

    Python进阶必备——HiKari为了拿捏Python整理的技术笔记

    2. **多进程与进程间通信(IPC)**:Python的multiprocessing模块提供了进程支持,绕过GIL限制,实现真正的并行。同时,通过管道、队列等方式实现进程间的通信,处理大量并发任务。 3. **异步IO**:Python的asyncio...

    多进程、多线程加速(python)(csdn)————程序.pdf

    Python 中提供了 multiprocessing 模块来支持多进程编程。在多进程加速中,每个进程都可以执行不同的任务,以提高程序的执行速度。 在上面的代码中,我们定义了两个 worker 函数:worker1 和 worker2,每个函数都...

    每天分享几个python项目 —— chatapp_0

    通过这个ChatApp_0项目,开发者不仅可以巩固Python编程基础,还能深入了解网络编程、服务器开发以及实际项目中的问题解决技巧。同时,这个项目也可以作为进一步学习如WebSocket、数据库集成、图形用户界面(GUI)等...

    多线程脚本python(csdn)————程序.pdf

    在Python编程中,多线程和多进程是两种常见的并发执行方式,用于提高程序的运行效率。本示例代码展示了如何使用多进程(multiprocessing模块)来实现并发执行任务,而不是多线程(threading模块)。多进程在Python中...

    解析Python下的多进程编程_.docx

    Python作为一种广泛应用的高级编程语言,提供了多种方式进行多进程编程。本文将深入探讨如何在Python中实现多进程,并通过具体的示例来帮助读者理解其原理和应用场景。 #### 二、多进程编程的基础 ##### 2.1 操作...

    python 进程池(csdn)————程序.pdf

    首先,我们需要理解Python的`multiprocessing`模块,它是Python标准库中用于多进程编程的模块。在这个模块中,`Pool`类是进程池的主要实现,可以创建一个包含多个工作进程的池。在代码中,`Pool(processes=4)`创建了...

    每天分享几个python项目 —— rps-game-multiplayer-using-python.zip

    - **多线程或多进程**:为了同时处理多个玩家的请求,可能需要用到Python的`threading`或`multiprocessing`库。 - **同步机制**:在并发环境中,可能需要锁或其他同步工具防止数据竞争。 5. **游戏逻辑**: - **...

    python中的多线程与多进程及其区别(csdn)————程序.pdf

    在Python编程中,多线程和多进程是两种常见的并发执行方式,它们允许程序在多个任务之间切换,提高计算机系统的资源利用率和程序的响应速度。本文将深入探讨这两种并发模型的区别、实现方式以及它们在Python中的应用...

    python——大作业.zip

    11. **并发编程**:Python提供了线程(threading)、进程(multiprocessing)和异步I/O(asyncio)等机制,以应对多任务处理和高性能服务的需求。 12. **数据分析与科学计算**:随着NumPy、Pandas、SciPy等库的广泛...

    Python编程实战

    1. Python编程基础:这包括Python的数据类型、变量、控制流语句、函数、模块、包和面向对象的编程基础。掌握这些基础对于任何Python开发者来说都是至关重要的。 2. 设计模式:在编程中,设计模式是解决特定问题的...

    Python 第三阶段进阶编程指南

    (threading) 和多进程 (multiprocessing),介绍了Python正则表达式的基本概念及其常见使用方法,在此基础上介绍了数据库操作技术和Python进行简单的网络请求、Socket编程乃至爬虫开发。这些知识点对于希望深入了解 ...

    python进程、线程(csdn)————程序.pdf

    在Python编程中,进程和线程是并发执行任务的基础概念,它们允许程序同时处理多个任务,提高系统的效率和响应速度。下面将详细解释这些概念及其相关的工具和机制。 ### 进程 进程是计算机中运行的程序的一个实例,...

    Python 多进程并发操作中进程池Pool的实例

    在Python编程中,多进程并发是一种有效的提升程序性能的方式,特别是在处理大量数据或执行计算密集型任务时。Python的`multiprocessing`模块提供了对多进程的支持,其中包括一个强大的工具——进程池(Pool)。本文...

    Python实现web服务器入门学习笔记(6)——多进程实现并发HTTP服务器的面向对象封装

    在本篇《Python实现Web服务器入门学习笔记(6)——多进程实现并发HTTP服务器的面向对象封装》中,我们将深入探讨如何使用面向对象编程的方法来封装之前实现的多进程并发HTTP服务器。面向对象编程(Object-Oriented ...

    Python编程练习的程序源码.zip

    7. **concurrent**: 并发编程是Python中的一个重要话题,尤其是Python的多线程(threading)、多进程(multiprocessing)以及异步I/O(asyncio)库。这部分可能涉及并发执行任务、线程同步和进程通信。 8. **score_...

    对Python的多进程锁的使用方法详解

    在Python多进程编程中正确使用锁是非常重要的,它能够帮助开发者避免并发问题。需要注意的是,由于进程之间的内存不共享,简单地通过参数传递锁并不能确保锁的有效性。本文介绍了几种常见的问题及其解决方案,并提供...

    简单谈谈python中的Queue与多进程

    在多进程编程中,`multiprocessing`模块扮演着核心角色。该模块允许我们创建并管理多个独立的进程,每个进程都有自己的内存空间,从而实现真正的并行计算。创建子进程可以使用`Process`类,通过指定`target`参数为要...

    Phthon3标准库——The Python 3 Standard Library by Example

    《Python 3标准库——The Python 3 Standard Library by Example》是一本详尽介绍Python 3标准库的著作,共计1400多页,涵盖了Python编程中的诸多核心概念和实用模块。这本书以实例为引导,让读者通过实践来理解和...

    初步解析Python下的多进程编程

    在Python编程中,多进程编程是一种重要的技术,特别是在处理大量数据或者并发任务时,它可以显著提升程序的执行效率。在Unix/Linux系统中,这通常通过`fork()`系统调用来实现,而在Windows系统中,由于不支持`fork()...

    Python技术手册第二版--带详细书签

    **Python技术手册第二版——深度探索Python编程世界** 在编程领域,Python因其简洁、易读的语法和强大的功能,已经成为最受欢迎的编程语言之一。《Python技术手册第二版》是为那些希望深入理解Python编程的开发者量...

Global site tag (gtag.js) - Google Analytics