python 多进程的启动和停止(Python3.5多进程原理与用法实例分析)
python 多进程的启动和停止
Python3.5多进程原理与用法实例分析本文实例讲述了python3.5多进程原理与用法。分享给大家供大家参考,具体如下:
进程类:process
示例及代码:
(1)创建函数作为单进程
|
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:zhengzhengliu import multiprocessing import time #创建函数并将其作为单个进程 def worker(interval): n = 5 #进程数 while n> 0 : print ( "the time is :{0}" . format (time.ctime())) #初始化时间 time.sleep(interval) #睡眠时间 n - = 1 if __name__ = = "__main__" : # 创建进程,target:调用对象,args:传参数到对象 p = multiprocessing.process(target = worker,args = ( 2 ,)) p.start() #开启进程 print ( "进程号:" ,p.pid) print ( "进程别名:" ,p.name) print ( "进程存活状态:" ,p.is_alive()) |
运行结果:
进程号: 6784
进程别名: process-1
进程存活状态: true
the time is :wed nov 1 10:59:03 2017
the time is :wed nov 1 10:59:05 2017
the time is :wed nov 1 10:59:07 2017
the time is :wed nov 1 10:59:09 2017
the time is :wed nov 1 10:59:11 2017
(2)创建函数作为多进程
|
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:zhengzhengliu import multiprocessing import time #创建函数作为多进程 def work1(interval): print ( "work1..." ) time.sleep(interval) print ( "end work1..." ) def work2(interval): print ( "work2..." ) time.sleep(interval) print ( "end work2..." ) def work3(interval): print ( "work3..." ) time.sleep(interval) print ( "end work3..." ) if __name__ = = "__main__" : p1 = multiprocessing.process(target = work1,args = ( 1 ,)) p2 = multiprocessing.process(target = work2,args = ( 2 ,)) p3 = multiprocessing.process(target = work3,args = ( 3 ,)) p1.start() p2.start() p3.start() print ( "the number of cpu is %d:" % (multiprocessing.cpu_count())) #打印cpu核数 for p in multiprocessing.active_children(): #循环打印子进程的名称和pid print ( "子进程名称:%s,子进程pid:%d" % (p.name,p.pid)) print ( "ending...." ) |
运行结果:
the number of cpu is 4:
子进程名称:process-2,子进程pid:7108
子进程名称:process-1,子进程pid:1896
子进程名称:process-3,子进程pid:7952
ending....
work3...
work1...
work2...
end work1...
end work2...
end work3...
注:先运行主进程的内容,再运行子进程
(3)将进程定义成一个类
|
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:zhengzhengliu import multiprocessing import time #将进程定义为一个类 class clockprocess(multiprocessing.process): def __init__( self ,interval): multiprocessing.process.__init__( self ) #重构了process类里面的构造函数 self .interval = interval def run( self ): #固定用run方法,启动进程自动调用run方法 n = 5 while n> 0 : print ( "the time is {0}" . format (time.ctime())) time.sleep( self .interval) n - = 1 if __name__ = = "__main__" : p = clockprocess( 2 ) p.start() |
运行结果:
the time is wed nov 1 11:31:28 2017
the time is wed nov 1 11:31:30 2017
the time is wed nov 1 11:31:32 2017
the time is wed nov 1 11:31:34 2017
the time is wed nov 1 11:31:36 2017
(4)queue(队列)实现多进程数据传输
|
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:zhengzhengliu import multiprocessing #queue是多进程安全的队列,可以使用实现多进程之间的数据传递 def writer_proc(q): try : q.put( 1 ,block = false) #put方法插入数据到队列中 except : pass def reader_proc(q): try : print (q.get(block = false)) #get方法从队列中读取并删除一个元素 except : pass if __name__ = = "__main__" : q = multiprocessing.queue() writer = multiprocessing.process(target = writer_proc,args = (q,)) writer.start() reader = multiprocessing.process(target = reader_proc,args = (q,)) reader.start() reader.join() writer.join() |
运行结果:
1
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/loveliuzz/article/details/78411458
- php简单定时执行任务(php实现 master-worker 守护多进程模式的实例代码)
- python多进程创建细节(Python实现多进程的四种方式)
- python多进程与多线程详解(Python线程之定位与销毁的实现)
- python 多进程读取文件(Python实现的多进程拷贝文件并显示百分比功能示例)
- php脚本控制方法(php swoole多进程/多线程用法示例基于php7nts版)
- php的流程控制语句(PHP基于swoole多进程操作示例)
- python创建进程的方法(Python多进程fork函数详解)
- python的多线程比多进程效率高(Python中单线程、多线程和多进程的效率对比实验实例)
- python多线程和多进程应用场景(Python多线程处理实例详解单进程/多进程)
- python为什么要用多进程(对Python的多进程锁的使用方法详解)
- python 多进程的启动和停止(Python3.5多进程原理与用法实例分析)
- php怎么实现多线程(PHP实现的多进程控制demo示例)
- python 多线程与多进程(python 多线程串行和并行的实例)
- python如何使用multiprocess(Python multiprocessing多进程原理与应用示例)
- php常驻进程(PHP 多进程与信号中断实现多任务常驻内存管理实例方法)
- php7内核剖析(浅析PHP7的多进程及实例源码)
- 成都旅游攻略(成都旅游攻略自由行最佳线路)
- 给儿童吃什么最好(给儿童吃什么最好消化)
- 杭州旅游攻略()
- 云南旅游攻略(云南旅游攻略5天攻略)
- 收藏 春节假期,这些景区巨划算(收藏春节假期这些景区巨划算)
- 景区游玩,这些安全知识要牢记(这些安全知识要牢记)
热门推荐
- mysql判断表中字段是否存在(mysql插入前判断数据是否存在的操作)
- dedecms怎么更换模板(DEDECMS解析模板之灵活应用视图类)
- ipython命令行查看文件夹(对IPython交互模式下的退出方法详解)
- idea集成docker-compose(IDEA 集成 docker 实现远程部署的详细步骤)
- 安装mysql中要注意什么问题(安装Mysql时可能会遇到的一些疑难杂症)
- js使用递归解析(关于JavaScript递归经典案例题详析)
- js的模块模式设计(如何理解JavaScript模块化)
- centos安装sql server(Centos 7.3下SQL Server安装配置方法图文教程)
- docker自动执行镜像(docker实现重新打tag并删除原tag的镜像)
- 微信小程序企业微信打卡(使用Python实现企业微信的自动打卡功能)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9