Python 34(进程重点)
一:开启进程的两种方式(*****)
#开启进程的方式一:
from multiprocessing import Process
import time def task(name):
print('%s is running' % name)
time.sleep(3)
print('%s is done' % name) # 在window系统上,开启子进程的操作必须放到if __name__ == '__main__'的子代码中
if __name__ == '__main__':
p = Process(target=task, args=('nuanxin',)) # Process(target=task,kwargs={'name':'nuanxin'})
p.start() # 只是向操作系统发送了一个开启子进程的信号
print('混世魔王')
终端打印:
主
子进程 is running
子进程 is done
Process finished with exit code 0
# 开启进程的方式二:
from multiprocessing import Process
import time class Myprocess(Process):
def __init__(self, name):
super().__init__()
self.name = name def run(self):
print('%s is runing' % self.name)
time.sleep(3)
print('%s is done' % self.name) # windows系统上,开启子进程的操作系统必须放到if __name__ == '__main__'的子代码中
if __name__ == '__main__':
p = Myprocess('nuanxin')
p.start() # 只是向操作系统发送了一个开启进程的信号
print('混世魔王')
终端打印:
子进程 is running
子进程 is done
主
Process finished with exit code 0
二:进程对象的join方法(*****)
# join:让主进程在原地等待,等待进程运行完毕,不会影响进程的执行
from multiprocessing import Process
import time def task(name, n):
print('%s is running' % name)
time.sleep(3)
print('%s is done' % name) if __name__ == '__main__':
p1 = Process(target=task, args=('子1', 1))
p2 = Process(target=task, args=('子2', 2))
p3 = Process(target=task, args=('子3', 3)) start = time.time()
p1.start()
p2.start()
p3.start()
time.sleep(5) p3.join() #
p1.join()
p2.join()
print('混世魔王', (time.time() - start)) # 5.027485609054565 5.029683589935303 5.025939464569092 start = time.time()
p_l = []
for i in range(1, 4):
p = Process(target=task, args=('子%s' % i, i))
p_l.append(p)
p.start() for p in p_l:
p.join()
print('混世魔王', (time.time() - start))
终端打印:
子进程 is running
子进程 is running
子进程 is running
子进程 is done
子进程 is done
子进程 is done
Process finished with exit code 0
三:进程对象之间内存空间隔离(*****)
进程和进程之间的空间不会互相干扰,没办法直接获取另一个进程空间里的数据,要获取只有一种办法,就是写到文件里面再获取
from multiprocessing import Process n=100
def task():
global n
n=0 if __name__ == '__main__':
p=Process(target=task)
p.start()
p.join()
print(n)
Python 34(进程重点)的更多相关文章
- *****Python之进程线程*****
Python之进程线程 Python的threading模块 并发编程: 操作系统:位于底层硬件与应用软件之间的一层. 工作方式:向下管理硬件,向上提供接口. 进程:资源管理单位(容器) 线程:最 ...
- Python:进程
由于GIL的存在,python一个进程同时只能执行一个线程.因此在python开发时,计算密集型的程序常用多进程,IO密集型的使用多线程 1.多进程创建: #创建方法1:将要执行的方法作为参数传给Pr ...
- 【Python】使用Supervisor来管理Python的进程
来源 : http://blog.csdn.net/xiaoguaihai/article/details/44750073 1.问题描述 需要一个python的服务程序在后台一直运行,不能让 ...
- python 守护进程 daemon
python 守护进程 daemon # -*-coding:utf-8-*- import sys, os '''将当前进程fork为一个守护进程 注意:如果你的守护进程是由inetd启动的,不要这 ...
- Python之进程
进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代 ...
- Python的进程与线程--思维导图
Python的进程与线程--思维导图
- Python之进程 3 - 进程池和multiprocess.Poll
一.为什么要有进程池? 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务.那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗 ...
- {Python之进程} 背景知识 什么是进程 进程调度 并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 multiprocess模块 进程池和mutiprocess.Poll
Python之进程 进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mut ...
- Python守护进程和脚本单例运行
Python 守护进程 守护进程简介 进程运行有时候需要脱离当前运行环境,尤其是Linux和Unix环境中需要脱离Terminal运行,这个时候就要用到守护进程.守护进程可以脱离当前环境要素来执行,这 ...
- python开发进程:共享数据&进程池
一,共享数据 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合 通过消息队列交换数据.这样极大地减少了对使用锁定和其他同步手段的需求, 还可以扩展 ...
随机推荐
- Discuz! X3.1云平台QQ互联的Unknown column 'conuintoken' in 'field list' 解决办法
http://www.discuz.net/thread-3482497-1-1.html 由于程序安装默认数据表的结构和QQ互联数据表结构不同,安装Discuz! X3.1和升级Discuz! X3 ...
- picturebox中添加图片
private void Form1_Load(object sender, EventArgs e) { radioButton2.Checked = true; } private void ra ...
- Unity如何播放带有alpha 通道的视频
问题: 当使用Video Player播放带有alpha 通道的视频时带有黑色背景 解决方式: 使用文件格式为WEBM的视频,对视频文件进行的修改 在RawImage中,将New Render Tex ...
- git clone下载代码,中途断掉怎么办?
问题如下: 解决办法: 1)运行以下命令进行clone $ git clone --recursive https:xxxxxx 2)进入项目根目录,继续下载 $ cd eigen-git-mirro ...
- 在Python脚本中调用Django环境(方便、右键运行,可用于ORM测试)
随便创建一个py文件即可: import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODUL ...
- CentOS 7安装JDK 1.8
1. 首先查看当前Linux系统是否安装Java ``` rpm -qa | grep java ``` 2. 如果列表显示有,则使用命令将其卸载 rpm -e --nodeps 要卸载的软件名 或 ...
- 【codeforces 760D】Travel Card
[题目链接]:http://codeforces.com/contest/760/problem/D [题意] 去旅行,有3种类型的乘车票; 第一种:只能旅行一次20元 第二种:按时间计算,90分钟内 ...
- [POJ1733]Parity game(并查集 + 离散化)
传送门 题意:有一个长度已知的01串,给出[l,r]这个区间中的1是奇数个还是偶数个,给出一系列语句问前几个是正确的 思路:如果我们知道[1,2][3,4][5,6]区间的信息,我们可以求出[1,6] ...
- 虚拟机win7 自动休眠
1.问题描述:vmware 虚拟机,windows7系统.当一段时间不操作时,任务会休眠. 2.原因:win7系统自动休眠引起的. 3.解决方法:关闭win7系统的自动休眠. 依次打开“控制面板”-- ...
- 2015 测试赛 大神和小伙伴 hihoCoder
立方和公式和平方和公式.表示从来不记得这些公式... 每库礼物不同数量相同,总数=1+2+...+n=(n+1)*n/2 选取礼物的可能性的最大值为[(n+1)*n/2]^3 选取礼物价值重复两次的总 ...