Python 并发 multiprocessing-Process

本文详细介绍了Python中的multiprocessing模块,包括如何使用Process类创建子进程,以及如何通过定义类来创建进程。文章提供了具体的代码示例,展示了如何使用multiprocessing模块执行周期性任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*multiprocessing
支持子进程、通信和共享数据、执行不同形式的同步。
*Process
创建进程的类:Process([group [, target [, name [, args [, kwargs]]]]]),target表示调用对象,args表示调用对象的位置参数元组。kwargs表示调用对象的字典。Name为别名。Group实质上不使用。

方法有:is_alive()、.join([timeout])、run()、start()、terminate()。属性有:authkey、daemon(要通过start()设置)、exitcode(进程在运行时为None、如果为–N,表示被信号N结束)、name、pid。

Process类中,注意daemon是父进程终止后自动终止,且自己不能产生新进程,必须在start()之前设置。

创建函数并将其作为单个进程。

01#!/usr/bin/python
02 
03import multiprocessing
04import time
05 
06def clock(interval):
07            while True:
08              print("The time is {0}".format(time.ctime()))
09              time.sleep(interval)
10 
11if __name__ == '__main__':
12            = multiprocessing.Process(target=clock, args=(15,))
13            p.start()

将进程定义为类:

01#!/usr/bin/python
02 
03import multiprocessing
04import time
05 
06class ClockProcess(multiprocessing.Process):
07    def __init__(self,interval):
08            multiprocessing.Process.__init__(self)
09            self.interval = interval
10 
11    def run(self):
12            while True:
13                print("The time is {0}".format(time.ctime()))
14                time.sleep(self.interval)
15 
16if __name__ == "__main__":
17    = ClockProcess(15)
18    p.start()

执行结果:

01jobin@jobin-desktop:~/work/python/fork$ python using_multiprocessing.py
02The time is Fri Apr 22 12:03:04 2011
03The time is Fri Apr 22 12:03:19 2011
04The time is Fri Apr 22 12:03:34 2011
05The time is Fri Apr 22 12:03:49 2011
06The time is Fri Apr 22 12:04:04 2011
07The time is Fri Apr 22 12:04:19 2011
08The time is Fri Apr 22 12:04:34 2011
09The time is Fri Apr 22 12:04:49 2011
10.................

为了兼容windows而这样创建类,而且还要注意,在windows下,要在命令行才能执行,用IDE是不行的。

原文:http://www.erlangsir.com/2011/04/22/python-%E5%B9%B6%E5%8F%91-multiprocessing-process/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值