博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day30 操作系统介绍 进程的创建
阅读量:7001 次
发布时间:2019-06-27

本文共 1903 字,大约阅读时间需要 6 分钟。

今日内容

一.操作系统的简单介绍

二,并发与并行

三.同步异步阻塞非阻塞

四.multiprocess模块

1. 操作系统的简单介绍

多道技术(重点)

  空间复用:

  时间复用:

  进程之间是空间隔离的

分时系统

实时系统

通用操作系统

2.并发与并行

并发: 伪并行,看着像同时运行,其实是任务之间的来回切换(遇到阻塞现象io会提高代码的效率)

两个要记的现象:任务切换+保存状态(保存现场)

并行:真正的同时运行,应用的是多核技术(多个CPU)

进程的三状态: 就绪(等待操作系统调度去CPU里面执行) ,执行,阻塞三种状态之间切换

 

阻塞:

    事件请求:input、sleep、文件输入输出、recv、accept等

    事件发生:sleep、input等完成了

    时间片到了之后有回到就绪状态,这三个状态不断的在转换。

3.同步异步阻塞非阻塞

提交任务的方式: 同步 异步 任务的执行状态: 阻塞 非阻塞

  异步:任务的提交方式,多个任务提交出去,同时执行

同步阻塞: 程序一个一个往下进行,阻塞了也得等着(好比一群人在排队,每个人只能排队,而且不能做别的事情)

异步阻塞: 异步操作是可以被阻塞的,只不过他不是在处理消息的时候阻塞,而是在等待消息通知时被阻塞.(好比一群人不用排队,但是领了号在那里坐着,只能坐着,不能做别的事情)

同步非阻塞: 实际上是效率低下的。想象一下你一边打着电话一边还需要抬头看到底队伍排到你了没有,如果把打电话和观察排队的位置看成是程序的两个操作的话,这个程序需要在这两种不同的行为之间来回的切换,效率可想而知是低下的。

异步非阻塞: 效率更高. 比如说,这个人突然发觉自己烟瘾犯了,需要出去抽根烟,于是他告诉点餐员说,排到我这个号码的时候麻烦到外面通知我一下,那么他就没有被阻塞在这个等待的操作上面,自然这个就是异步+非阻塞的方式.

4.multiprocess模块

格式

from Muletprocessing import Process进程创建的两种方式:1). Process(target=f1,args=(n,))# 这里的args接收的是元祖类型#kwargs={key:值} 或者kwargs接收到的是字典2).class Myprocess(process):def __init__(self,n):#相当于执行process中的__init__()   super().__init__()  self.n=n  def run(self):    passif __name__='__main__':  #创建对象  M=Myprocess(参数)  #相当于M执行run  M.start()  

join方法 :

  主进程等待子进程执行结束后再继续执行

import timefrom multiprocessing import Processdef f1():    time.sleep(2)    print('xxxx')    def f2():    time.sleep(2)    print('ssss')if __name__ == '__main__':    p1 = Process(target=f1,)    p2 = Process(target=f2,)    p1.start()    p2.start()# 主进程等待子进程运行完才继续执行# p1=Process(target=f1,)# p1.start()# p1.join()# print('开始p2啦')# p2 = Process(target=f2,)# p2.start()# p2.join()# print('我要等了...等我的子进程...')# time.sleep(2)# print('我是主进程!!!')

for 循环:

import timeimport multiprocessing import Processdef func(i):    time.sleep(3)    print(i)if __name__='__main__':    for i in range(20):    p1=process(target=func,args=(i,))    p1.start()# 此时代码执行的for循环是创建了20个数字,执行了func函数  

  

 

转载于:https://www.cnblogs.com/zty1304368100/p/10240888.html

你可能感兴趣的文章
C#进行Visio二次开发相关事件汇总
查看>>
安装fontconfig2.4.2时make报错解决
查看>>
试析软件测试的错觉及发展方向
查看>>
QTP自动化测试自学手册V2.0版本
查看>>
80后收入是怎样一个水平?看完网友工资单,对不起 拖大家内裤了
查看>>
有关软件测试的五大谣言
查看>>
find(2)
查看>>
jquery-1.4.4.min.js无法解析json中result.data问题
查看>>
php字符串大小写转换
查看>>
linux怎么不输入路径直接运行程序脚本
查看>>
日志信息log
查看>>
扩大VMware虚拟机中CentOS 7的硬盘空间
查看>>
BZOJ2005:[NOI2010]能量采集(莫比乌斯反演,欧拉函数)
查看>>
前端工程师的价值
查看>>
Springboot如何利用http请求控制器
查看>>
node.js中的http.response.end方法使用说明
查看>>
会议2.1
查看>>
zzuli OJ 1905: 小火山的跳子游戏 【GCD】
查看>>
Asp.Net 常用代码-备用
查看>>
Android Studio代码调试大全
查看>>