初识并发编程
2019-01-11 08:36:10来源:博客园 阅读 ()
操作系统简单介绍
多道技术:
空间复用:把许多进程都放入内存中,等待操作系统操作
时间复用:在内存中一个程序中有io阻塞程序,操作系统会在程序阻塞时,执行其他的程序
进程之间是空间隔离的
并发
伪并行,看着像同时运行,其实是任务之间的切换(遇到io切换的会提高代码效率) ,任务切换+保存状态(保存现场)
并行
真正的同时在运行,应用的是多核技术(多个cpu)
进程三状态:就绪(等待操作系统调度去cpu里面执行) 执行 阻塞
提交任务的方式:同步异步 任务的执行状态:阻塞非阻塞
异步:任务的提交方式,多个任务提交出去,同时执行
:
异步非阻塞:
多个任务同时提交,并且在程序运行的时候没有阻塞
进程的两种创建方式
1)
Process( target=f1, args=(i,) ( 或者 kwargs={‘形参名为key:值} ) )
from multiprocessing import Process def f1(n): print(n) if __name__ == '__main__': # p1 = Process(target=f1,args=('钢铁侠',)) #创建进程对象 p1 = Process(target=f1,kwargs={'n':'钢铁侠'}) #创建进程对象 p1.start()
2)
from multiprocessing import Process class MyProcess(Process): def __init__(self,n): super().__init__() #别忘了执行父类的init self.n = n def run(self): print('宝宝and%s'%self.n) if __name__ == '__main__': p1 = MyProcess('苍老师') p1.start()
Join方法
主进程等待子进程执行结束再继续执行
import time from multiprocessing import Process def f1(): time.sleep(2) print('xxxx') def f2(): time.sleep(2) print('ssss') if __name__ == '__main__': p1 = Process(target=f1,) p1.start() p1.join() # 主进程等待子进程运行完才继续执行 print('开始p2拉') p2 = Process(target=f2,) p2.start() p2.join() print('我要等我的子进程...') print('我是主进程')
for 循环开启进程
import time from multiprocessing import Process def f1(i): time.sleep(3) print(i) if __name__ == '__main__': for i in range(20): p1 = Process(target=f1,args=(i,)) p1.start()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:进程、线程、协程和GIL(二)
- python3基础之“术语表(2)” 2019-08-13
- 网络编程相关知识点 2019-08-13
- python 之 并发编程(线程理论,开启线程的两种方式,进程 2019-07-24
- 编程小白的第一本python入门书(高清版)PDF下载 2019-07-24
- 基于tornado---异步并发接口 2019-07-24
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