#进程是程序的运行,程序不运行不产生进程。
#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-进程的更多相关文章

  1. day34进程相关

    进程1 什么是进程    进程指的是一个正在进行/运行的程序,进程是用来描述程序执行过程的虚拟概念    进程vs程序    程序:一堆代码    进程:程序的执行的过程    进程的概念起源于操作系 ...

  2. day34——僵尸进程和孤儿进程、互斥锁、进程之间的通信

    day34 僵尸进程和孤儿进程 基于unix环境(linux,macOS) 主进程需要等待子进程结束之后,主进程才结束 主进程时刻监测子进程的运行状态,当子进程结束之后,一段时间之内,将子进程进行回收 ...

  3. day34 并行并发、进程开启、僵尸及孤儿进程

    day34 并行并发.进程开启.僵尸及孤儿进程 1.并行与并发 什么是并行? 并行指的是多个进程同时被执行,是真正意义上的同时 什么是并发? 并发指的是多个程序看上去被同时执行,这是因为cpu在多个程 ...

  4. day34 python学习 守护进程,线程,互斥锁,信号量,生产者消费者模型,

    六 守护线程 无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁 需要强调的是:运行完毕并非终止运行 #1.对主进程来说,运行完毕指的是主进程代码运行完毕 #2.对主线程来说,运行完 ...

  5. 学到了林海峰,武沛齐讲的Day34 完 线程 进程 协程 很重要

    线程 进程 协程 很重要 ...儿子满月回家办酒,学的有点慢,坚持

  6. day34

    今日内容: 1.开启子进程的两种方式 2.join方法 3.进程之间内存空间相互隔离 4.僵尸进程和孤儿进程 5.守护进程 6.互斥锁 7.进程对象其他相关的属性和方法 1.开启子进程的两种方式 方式 ...

  7. Python并发编程-进程 线程 同步锁 线程死锁和递归锁

    进程是最小的资源单位,线程是最小的执行单位 一.进程 进程:就是一个程序在一个数据集上的一次动态执行过程. 进程由三部分组成: 1.程序:我们编写的程序用来描述进程要完成哪些功能以及如何完成 2.数据 ...

  8. Python3 进程 线程 同步锁 线程死锁和递归锁

    进程是最小的资源单位,线程是最小的执行单位 一.进程 进程:就是一个程序在一个数据集上的一次动态执行过程. 进程由三部分组成: 1.程序:我们编写的程序用来描述进程要完成哪些功能以及如何完成 2.数据 ...

  9. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  10. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

随机推荐

  1. 2020/2/2 PHP代码审计之反序列化

    0x00 序列化与反序列化 序列化: serialize()把对象转换为字节序列的过程称为对象的序列化 反序列化: unserialize()把字节序列恢复为对象的过程称为对象的反序列化 0x01 序 ...

  2. 使用html画爱心

    <!DOCTYPE html"> <html> <head> <meta http-equiv="Content-Type" c ...

  3. Chrome在新版MacOS上报错 NET::ERR_CERT_WEAK_KEY 解决方法

    现象 原文链接 证书详情: 原因 参考苹果官网给出的提示(https://support.apple.com/en-us/HT210176): RSA秘钥长度必须>=2048,小于这个长度的将不 ...

  4. DevOps专题 | 大型企业级监控系统设计

    10月30日,全球权威数据调研机构IDC正式发布<IDCMarketScape: 中国DevOps云市场2019,厂商评估>报告.京东云凭借丰富的场景和实践能力,以及高质量的服务交付和平台 ...

  5. cmd 删除整个目录

    rmdir 删除整个目录好比说我要删除 222 这个目录下的所有目录和档案,这语法就是: rmdir /s/q 222 其中: /s 是代表删除所有子目录跟其中的档案. /q 是不要它在删除档案或目录 ...

  6. D10 基本数据类型(各种职业的技能分析) 主要为 int 和 str

    在python中具有魔法的  职业  类型 召唤每种职业  在pychar 中 打出该职业的名称 按住Ctrl 光标在该职业名称上 点击就能看该职业的技能 1   数字   int a = " ...

  7. Channels(纪念一下卡我心态的一道题)

    链接:https://ac.nowcoder.com/acm/contest/3947/C来源:牛客网 题目描述 Nancy喜欢学习,也喜欢看电视. 为了想了解她能看多长时间的节目,不妨假设节目从时刻 ...

  8. 黑马_10 Lucene:全文检索

    10 Lucene:01.全文检索基本介绍 10 Lucene:02.创建索引库和查询索引 10 Lucene:03.中文分析器 10 Lucene:04.索引库维护CURD

  9. Unicode的认识

    Unicode(统一码.万国码.单一码),它是为解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制码,以满足跨语言跨平台进行文本转换.处理的要求.1990年开始研 ...

  10. 记一次修复Windows

    打开了一堆网页和应用,然后桌面不见了.. 于是很着急..就按各种快捷键..Win+R挂了.. 本来以为要reboot(机房电脑) , 然后问老师发现会格式化 然后发现Ctrl+Alt+Delete还存 ...