day34-进程
#进程是程序的运行,程序不运行不产生进程。
#1、进程的并行与并发:
# 并行:是指两者同时执行,比如赛跑,两人都在不停的往前跑。(资源够用,比如三个线程,四核的cpu)
# 并发:是指资源有限的情况下,两者交替轮流使用资源,比如一段路(单核cpu)只能同时过一个人,A走一段路之后,让给B,
# B用完之后继续给A,交替使用,目的是提高效率。 #2、进程的状态:就绪 运行 阻塞
# (1)就绪(Ready)状态:当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。
# (2)执行/运行(Running)状态:当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。
# (3)阻塞(Blocked)状态:正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。

#3、同步和异步:
# 比如我去银行办理业务,可能会有两种方式:
# 同步 :选择排队等候;一边排队一边等候消息通知,排队和等候是同步进行的。
# 异步 :选择取号,等到排到我这一号时由柜台的人通知我轮到我去办理业务;
# 就是异步等待消息通知。在异步消息处理中,
# 等待消息通知者(在这个例子中就是等待办理业务的人)往往注册一个回调机制,
# 在所等待的事件被触发时由触发机制(在这里是柜台的人)通过某种机制(在这里是写在小纸条上的号码,喊号)找到等待该事件的人。 #4、阻塞和非阻塞:
# 阻塞:继续上面的那个例子,不论是排队还是使用号码等待通知,如果在这个等待的过程中,
# 等待者除了等待消息通知之外不能做其它的事情,那么该机制就是阻塞的,表现在程序中,
# 也就是该程序一直阻塞在该函数调用处不能继续往下执行。
# 非阻塞:相反,有的人喜欢在银行办理这些业务的时候一边打打电话发发短信一边等待,
# 这样的状态就是非阻塞的,因为他(等待者)没有阻塞在这个消息通知上,而是一边做自己的事情一边等待。 #5、同步、异步、阻塞、非阻塞:
# 1、同步阻塞:效率最低。拿上面的例子来说,就是你专心排队,什么别的事都不做。
# 2、异步阻塞:如果在银行等待办理业务的人采用的是异步的方式去等待消息被触发(通知),也就是取了号,
# 假如在这段时间里他不能离开银行做其它的事情,那么很显然,这个人被阻塞在了这个等待的操作上面;
# 异步操作是可以被阻塞住的,只不过它不是在处理消息时阻塞,而是在等待消息通知时被阻塞。
# 3、同步非阻塞:效率最低。想象一下你一边打着电话一边还需要抬头看到底队伍排到你了没有,
# 如果把打电话和观察排队的位置看成是程序的两个操作的话,这个程序需要在这两种不同的行为之间来回的切换,
# 效率可想而知是低下的。
# 4、异步非阻塞:效率更高,因为打电话是你(等待者)的事情,而通知你则是柜台(消息触发机制)的事情,
# 程序没有在两种不同的操作中来回切换。比如说,这个人突然发觉自己烟瘾犯了,需要出去抽根烟,于是他告诉大堂经理说,
# 排到我这个号码的时候麻烦到外面通知我一下,那么他就没有被阻塞在这个等待的操作上面,
# 自然这个就是异步+非阻塞的方式了。 #6、进程的创建:创建进程就是让程序运行起来,所有进程(子进程)都是被其他进程(父进程)创建出来的。 # 7、
import os
import time
print(os.getpid()) #获取当前运行的python程序的进程id:process id
print(os.getppid()) #获取当前进程的父id:parent process id
time.sleep(100) #睡眠是为了在 任务管理器 的详细信息当中看到上面两进程的pid,否则上面两进程运行完
#是瞬间的事情,无法看到pid。

# 8、multiprocess是综合处理进程的模块。multi 多元的、综合的,process进程:
from multiprocessing import Process
import os
def func():
print('子进程', os.getpid())
print(123) if __name__ == '__main__': #创建的进程要放在此语句里面。
p = Process(target=func) #创建一个进程对象。实例化对象=类()
print('主进程',os.getpid())
p.start() #告诉操作系统我要开始一个进程,至于操作系统什么时候调度,无法知道,所以先执行下面的代码。
print('主进程', os.getpid())
#执行结果是:主进程 12164
# 主进程 12164
# 子进程 21952
# 123
day34-进程的更多相关文章
- day34进程相关
进程1 什么是进程 进程指的是一个正在进行/运行的程序,进程是用来描述程序执行过程的虚拟概念 进程vs程序 程序:一堆代码 进程:程序的执行的过程 进程的概念起源于操作系 ...
- day34——僵尸进程和孤儿进程、互斥锁、进程之间的通信
day34 僵尸进程和孤儿进程 基于unix环境(linux,macOS) 主进程需要等待子进程结束之后,主进程才结束 主进程时刻监测子进程的运行状态,当子进程结束之后,一段时间之内,将子进程进行回收 ...
- day34 并行并发、进程开启、僵尸及孤儿进程
day34 并行并发.进程开启.僵尸及孤儿进程 1.并行与并发 什么是并行? 并行指的是多个进程同时被执行,是真正意义上的同时 什么是并发? 并发指的是多个程序看上去被同时执行,这是因为cpu在多个程 ...
- day34 python学习 守护进程,线程,互斥锁,信号量,生产者消费者模型,
六 守护线程 无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁 需要强调的是:运行完毕并非终止运行 #1.对主进程来说,运行完毕指的是主进程代码运行完毕 #2.对主线程来说,运行完 ...
- 学到了林海峰,武沛齐讲的Day34 完 线程 进程 协程 很重要
线程 进程 协程 很重要 ...儿子满月回家办酒,学的有点慢,坚持
- day34
今日内容: 1.开启子进程的两种方式 2.join方法 3.进程之间内存空间相互隔离 4.僵尸进程和孤儿进程 5.守护进程 6.互斥锁 7.进程对象其他相关的属性和方法 1.开启子进程的两种方式 方式 ...
- Python并发编程-进程 线程 同步锁 线程死锁和递归锁
进程是最小的资源单位,线程是最小的执行单位 一.进程 进程:就是一个程序在一个数据集上的一次动态执行过程. 进程由三部分组成: 1.程序:我们编写的程序用来描述进程要完成哪些功能以及如何完成 2.数据 ...
- Python3 进程 线程 同步锁 线程死锁和递归锁
进程是最小的资源单位,线程是最小的执行单位 一.进程 进程:就是一个程序在一个数据集上的一次动态执行过程. 进程由三部分组成: 1.程序:我们编写的程序用来描述进程要完成哪些功能以及如何完成 2.数据 ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
随机推荐
- vue/cli创建项目过程
①vue create demo vue版本:3.9.3,node版本:12.8.0 ②Manually select features ③Bab ...
- elastic启动脚本
#!bin/bash export JAVA_HOME=/usr/java/jdk1.8.0_144 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH ...
- spyder.app制作图标
安装了 anaconda3, 自带spyder, 但是只能在terminal 中打开, 非常不友好. 模仿 anaconda3/目录下 Anaconda-Navigator.app, 制作了 spyd ...
- git高级用法之cheery-pick
前言 想象一种情况,你在分支上开发多个功能,现在要将第一个功能推到另一个分支上 master 1_2 | dev \__3_4_5 例如上面的,先基于master创建了分支dev, 然后提交了3个co ...
- JAVA 算法练习(三)
拆解排序问题 后缀子串排序 题目: 对于一个字符串,将其后缀子串进行排序,例如grain 其子串有: grain rain ain in n 然后对各子串按字典顺序排序,即: ain,grain,in ...
- spring hystrix和内置tomcat组件的参数调优解析
1. springboot内置tomcat容器的参数配置 server: port: 12021 # server端的socket超时间(毫秒),使用值-1表示没有(即无限)超时,默认值为60000( ...
- VuePress 中增加用户登录功能
在 VuePress 中增加用户登录 VuePress 是 Vuejs 官方提供的一个快速建设文档站点的工具,在简单配置好功能后,需要做的事情就剩下写好一个个 Markdown 文档. 因为 VueP ...
- Ubuntu---不能打开 exfat 文件系统格式的 U盘解决方法
出现问题:今天把 U 盘插入 Ubuntu 系统的电脑中,打开 U 盘发现弹出 系统格式不支持 的提醒,无法进入 U 盘进行操作. 环境: Ubuntu18.04 TSL; 格式化为 exfat 文件 ...
- BBS配置
BBS配置 一.url路由 """BBS URL Configuration The `urlpatterns` list routes URLs to views. F ...
- mongo客户端升级导致pymongo中使用聚合函数时出现异常
一.异常信息 The 'cursor' option is required, except for aggregate with the explain argument 二.解决办法 #部分源代码 ...

