python记录_day30 多进程
2018-11-28 08:52:21来源:博客园 阅读 ()
1、什么是进程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
同一个程序执行两次,就会产生两个进程
## 进程调度算法:
先来先服务
短作业优先
时间片轮转法
多级反馈队列
2、并发和并行
并发是伪并行,只是看起来是同时运行的。它是基于单核的,一个CPU加多道技术就可实现(多道技术:多个进程之间来回切换)
并行:同时运行,要依靠多个cpu才能实现
3、进程状态转换图
4、同步/异步
同步:一个任务的进行需要等待前面任务的完成
异步:不需要等待前面任务的完成
5、创建进程
#方式一
1 import time 2 import os 3 from multiprocessing import Process 4 5 def func1(): 6 time.sleep(2) 7 print('我是func1') 8 9 def func2(): 10 time.sleep(2) 11 print('我是func2') 12 print('子进程id',os.getpid()) 13 print('父进程id',os.getppid()) 14 15 16 if __name__ =='__main__': 17 start = time.time() 18 # func1() 19 # func2() 20 21 #开子进程 22 p = Process(target=func2) 23 p.start() #告诉系统创建子进程 24 func1() 25 26 # p2 =Process(target=func1) 27 # p2.start() 28 # print('主进程id',os.getpid()) 29 30 end = time.time() 31 diff= end-start 32 print('时间差是》',diff)
#方式2
1 import time 2 from multiprocessing import Process 3 4 class MyProcess(Process): 5 #自定义初始化 6 def __init__(self,n): 7 super().__init__() #必须调用父类的初始化,不然会报错 8 self.n = n 9 # run方法要重写,里面是你想让子进程运行的东西 10 def run(self): 11 print(self.n) 12 time.sleep(2) 13 print('子进程结束') 14 15 if __name__ == '__main__': 16 p = MyProcess(520) 17 p.start() 18 p.join() 19 20 print('主进程结束')
6、注意
#进程之间是空间隔离的(保证数据安全)
#由于进程创建机制不同,在windows下创建子进程的语句要放在 if __name__ =="__main__" 里,因为windows系统创建进 程时相当于import,会先执行一遍文件并拷贝,如果不放在 if 里就会循环调用,报错
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash