今日内容

一.操作系统的简单介绍

二,并发与并行

三.同步异步阻塞非阻塞

四.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):
    pass if __name__='__main__':
  #创建对象
  M=Myprocess(参数)
  #相当于M执行run
  M.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,)
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 time
import multiprocessing import Process def 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函数
  

  

day30 操作系统介绍 进程的创建的更多相关文章

  1. python之操作系统介绍,进程的创建

    操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石.操作系统需要处理如管理与配置内存.决定系统资源供需的优先次序.控 ...

  2. Python 操作系统介绍 进程的创建

    背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内 ...

  3. python之路--操作系统介绍,进程的创建

    一 .  操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 所谓多道程序设计技术,就是指允许多个程序同时进入内存 ...

  4. python--操作系统介绍,进程的创建(并发)

    一 .  操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 所谓多道程序设计技术,就是指允许多个程序同时进入内存 ...

  5. 操作系统介绍-操作系统历史,IO,进程的三态,同步异步阻塞非阻塞

    1.操作系统历史 2.进程,IO,同步异步阻塞非阻塞 操作系统历史: 手工操作: 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式.此时还没有操作系统的概念. 手工操 ...

  6. Day9 进程理论 开启进程的两种方式 多进程实现并发套接字 join方法 Process对象的其他属性或者方法 守护进程 操作系统介绍

    操作系统简介(转自林海峰老师博客介绍) #一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 #二 多道技术: 1.产生背景: ...

  7. windows进程/线程创建过程 --- windows操作系统学习

    有了之前的对进程和线程对象的学习的铺垫后,我们现在可以开始学习windows下的进程创建过程了,我将尝试着从源代码的层次来分析在windows下创建一个进程都要涉及到哪些步骤,都要涉及到哪些数据结构. ...

  8. (委托事件处理)关于多线程执行显示进度条的实例(转)&&线程间操作无效: 从不是创建控件“rtxtEntryNO”的线程访问它。

    关于多线程执行显示进度条的实例! 之前回答了一篇关于怎么在线程中操作进度条的帖子,估计有人看的不是很明白今天没事,写了一个小小的实例,很简单,就2个文件权当抛砖引玉,希望有更好解决方案的人发表一下意见 ...

  9. 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~ 线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析

    看两个例子,一个是在一个进程里设置另外一个进程中控件的属性.另外一个是在一个进程里获取另外一个进程中控件的属性. 第一个例子 最近,在做一个使用线程控制下载文件的小程序(使用进度条控件显示下载进度)时 ...

随机推荐

  1. python 多进程和多线程

    在计算大量数据时,可以使用多进程 多线程机制来加速计算 多进程 import multiprocessing import os def run_proc(name): print('Child pr ...

  2. Python 列表复制

    Python 列表复制 关于Python 列表的复制,有多种方法,常用的 有 赋值.切片.list.copy,copy.deepcopy等. 但是 实际用时 又有区别,不小心可能就用错了. 接下来 简 ...

  3. Go语言学习之8 goroutine详解、定时器与单元测试

    主要内容: 1.Goroutine2. Chanel3. 单元测试 1. Goroutine Go 协程(Goroutine)(轻量级的线程,开线程没有数量限制).   (1)进程和线程 A. 进程是 ...

  4. linux: 安装jdk(java)

    作为Java开发人员,在Linux下安装一些开发工具是必备技能,本文以安装jdk为例,详细记录了每一步的操作命令,以供参考. 0.下载jdk8 登录网址:http://www.oracle.com/t ...

  5. ADO.NET介绍2

    一.Connection对象 Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接.所有Connection对象的基类都是DbConnection类. Co ...

  6. android -------- Data Binding的使用 RecyclerView

    今天来说说DataBinding在列表RecyclerView中的使用 列表绑定 App中经常用到列表展示,Data Binding在列表中一样可以扮演重要的作用,直接绑定数据和事件到每一个列表的it ...

  7. vs2013+caffe+cpu

    1.下载caffe官网提供的工具包,复制Windows下CommonSettings.props.example,后缀改为CommonSettings.props 2.由于电脑无GPU,所以修改复制过 ...

  8. Find a way HDU - 2612

    Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year ...

  9. 自动化(脚本)安装httpd服务

    思路: 1.检查传递的参数,httpd源码文件 2.检查执行脚本的用户是否为root 3.检查rpm是否安装过httpd,若安装过,则卸载 4.安装编译所需的工具 5.从网上下载httpd源码 6.配 ...

  10. Linux下查看相应端口的进程

    1)查找被占用的端口:netstat -tln | grep 7777 2)查看被占用端口的PID:lsof -i:7777 3)禁用使用kill -9 PID来禁用端口进程