python 多进程multiprocessing 模块

multiprocessing 常用方法:

  • cpu_count():统计cpu核数

    multiprocessing.cpu_count()

  • active_children() 获取所有子进程

    multiprocessing.active_children()

  • preces() 创建一个进程对象

    multiprocessing.Preces(target=function_name, args=())

    target: 函数名
    
    args: 函数需要的参数,以tuple形式传入,一个参数时需(1,)

Preces 常用方法:

  • is_alive() 判断进程是否存在
  • run() 启动进程
  • start() 启动进程,会自动调用run方法,这个常用
  • join([timeout]) 等待进程结束或者直到超时
    • join() 方法说明:
    def def worker(interval):
        time.sleep(interval)
        print(‘hello world‘)
    P = multiprocessing.Process(target=worker, args=(5,))
    #-----------------------------------
    P.start()
    #设置timeout 设置超时时间
    print(P.is_alive())
    P.join(timeout=3)
    print(‘end main‘)
    ###
        True
        end main
        hello world
    #-----------------------------------
    P.start()
    P.alive()
    # 不调置timeout 超时时间
    P.join()
    print()
    ###
        True
        hello world
        end main
    #-----------------------------------
    结论:
    当join()不设置timeout时程序会一直等待上面的进程执行完成后再执行join()后面的代码
    当设置timeout时,无论上面的进程是否执行完成,程序运行到指定时间后就会执行后面的代码
    

    Preces 常用属性

  • namd 进程名子
  • pid 进程的pid
时间: 2024-10-08 13:28:53

python 多进程multiprocessing 模块的相关文章

python多进程multiprocessing模块中Queue的妙用

最近的部门RPA项目中,小爬为了提升爬虫性能,使用了Python中的多进程(multiprocessing)技术,里面需要用到进程锁Lock,用到进程池Pool,同时利用map方法一次构造多个process.Multiprocessing的使用确实能显著提升爬虫速度,不过程序交由用户使用时,缺乏一个好的GUI窗口来显示爬虫进度.之前的文章中使用了Chrome浏览器来渲染js脚本生成了进度条.但是鉴于Chrome在运行时十分吃内存资源,用Chrome只是生成一个进度条难免有些“大材小用”,所以,小

Python多进程multiprocessing(二)

紧接上文 在上文Python多进程multiprocessing(一)中我们介绍了多进程multiprocessing的部分基础操作,在本文中,我们将继续介绍关于多进程的一些知识,比如进程池Pool这个有用的东东.马上开始吧! 使用实例 实例1 import multiprocessing as mp def job(x): return x*x def multicore(): pool = mp.Pool(processes=2) res = pool.map(job,range(10))

python 3 编程之多进程 multiprocessing模块

一 .multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程.Python提供了multiprocessing. multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似. multiprocessing模块的功能众多:支持子进程.通信和共享数据.执行不同形式的同步,提供了

python多进程-----multiprocessing包

multiprocessing并非是python的一个模块,而是python中多进程管理的一个包,在学习的时候可以与threading这个模块作类比,正如我们在上一篇转载的文章中所提,python的多线程并不能做到真正的并行处理,只能完成相对的并发处理,那么我们需要的就是python的多进程来完成并行处理,把所有的cpu资源都利用起来.multiprocessing的很大一部分与threading使用同一套API,只不过换到了多进程的环境.这里面要注意,对于多进程来说,win32平台和unix平

多进程multiprocessing模块

multiprocessing是python的多进程管理包,和threading.Thread类似.直接从侧面用subprocesses替换线程使用GIL的方式,由于这一点,multiprocessing模块可以让程序员在给定的机器上充分的利用CPU. 在multiprocessing中,通过创建Process对象生成进程,然后调用它的start()方法 1 from multiprocessing import Process 2 3 def f(name): 4 print('hello',

python ---多进程 Multiprocessing

和 threading 的比较 多进程 Multiprocessing 和多线程 threading 类似, 他们都是在 python 中用来并行运算的. 不过既然有了 threading, 为什么 Python 还要出一个 multiprocessing 呢? 原因很简单, 就是用来弥补 threading 的一些劣势, 比如在 threading 教程中提到的GIL. 创建多进程 import multiprocessing as mp import threading as td def

Python多进程multiprocessing使用示例

mutilprocess简介 像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的利用率会比threading好的多. import multiprocessing def worker(num): """thread worker function""" print 'Worker:', num return if __name__ == '__main__': jobs = [] for i

python多进程multiprocessing Pool相关问题

python多进程想必大部分人都用到过,可以充分利用多核CPU让代码效率更高效. 我们看看multiprocessing.pool.Pool.map的官方用法 map(func, iterable[, chunksize]) A parallel equivalent of the map() built-in function (it supports only one iterable argument though). It blocks until the result is ready

python的multiprocessing模块进程创建、资源回收-Process,Pool

python的multiprocessing有两种创建进程的方式,每种创建方式和进程资源的回收都不太相同,下面分别针对Process,Pool及系统自带的fork三种进程分析. 1.方式一:fork() 举例: 1 import os 2 pid = os.fork() # 创建一个子进程 3 os.wait() # 等待子进程结束释放资源 4 pid为0的代表子进程. 缺点:1.兼容性差,只能在类linux系统下使用,windows系统不可使用:2.扩展性差,当需要多条进程的时候,进程管理变得