首页 > 系统相关 >第四十六天 关于进程的很多东西

第四十六天 关于进程的很多东西

时间:2023-06-04 13:55:05浏览次数:22  
标签:__ 创建 阻塞 CPU 并发 关于 进程 第四十六

一、昨日内容回顾

UDP协议
UDP			TCP
recvfrom()		recv()
sendto()		send()

操作系统发展史
1.穿孔卡片
2.联机批处理
3.脱机批处理
# 一步步提高CPU的工作效率

多道技术
'''研究的前提是只有一个CPU'''
1.串行
多个程序依次排队执行 效率低 但是有一个优点(后面再说)
2.多道
利用IO操作的间隙: 切换 + 保存状态
多道想要实现的目标其实就是'并发'

进程理论
# 1.进程与程序的区别
程序是一堆没有被允许的代码
进程是正在执行的程序
# 2.进度调度算法
先来先服务
短作业优先
时间片轮转法+多级反馈队列

# 1.并发与并行
并发:看上去像同时在执行就可以称之为是并发(单个CPU就可以)
并行:必须同一时间同时执行(必须要有多个CPU才可以)
ps:以后我们写软件都会用一个名词来表示自己写的软件有多牛逼
并发量: 1千万	2千万  3千万	(越多越牛逼)
"""
星轨:明星出轨
微博以前只要有明星出轨就会立刻蹦掉 后续一直在优化
现在微博号称可以同时架得住八个星轨(八个明星出轨)都不会蹦
ps:行业中有时候也会用星轨来表示软件的并发量
"""
# 2.同步与异步
'''描述的是任务的提交方式'''
同步:提交完任务之后原地等待任务的结果 期间不做任何事
异步:提交完任务之后不原地等待结果 结果通过反馈机制获取

# 3.阻塞与非阻塞
'''描述的是任务的执行状态'''
阻塞:阻塞态
非阻塞:就绪态 运行态
ps:如果要追求极致的效率 那么应该让程序一直处于非阻塞态

二、代码创建进程

创建进程的两种方式
"""
创建进程的方式有哪些
	1.鼠标双击桌面一个应用图标
	2.代码创建

创建进程的本质:在内存中申请一块内存空间用于运行相应的程序代码
"""
# 第一种创建进程的方式
from multiprocessing import Process
import time


def task(name):
    print('%s is running' % name)
    time.sleep(3)
    print('%s is over' % name)


if __name__ == '__main__':
    p = Process(target=task, args=('jason',))  # 创建一个进程对象
    p.start()  # 告诉操作系统创建一个新的进程
    print('主进程')
"""
强调:不同的操作系统创建进程的要求不一样
    在windows中创建进程是以导入模块的方式进行 所以创建进程的代码必须写在__main__子代码中
    否则会直接报错 因为在无限制创建进程
    在linux和mac中创建进程是直接拷贝一份源代码然后执行 不需要写在__main__子代码中
"""

标签:__,创建,阻塞,CPU,并发,关于,进程,第四十六
From: https://www.cnblogs.com/tuq2791/p/17455596.html

相关文章

  • ctf中关于php伪协议的考查
    1php://input协议第一个例子flag.php<?php$flag='flag{flag_is_here}';test1.php<?phpinclude('flag.php');$a=$_GET["a"];if(isset($a)&&(file_get_contents($a,'r'))==='thisistest'){echo"s......
  • 关于员工管理系统的实现
    关于员工管理系统的实现***用到的知识点【1】os模块os就是“operatingsystem”的缩写,顾名思义,os模块提供的就是各种Python程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面也可以极大增强代码的可移植性。#本次用到的......
  • 进程的基本认识
    进程进程的提出是为什么?因为程序,计算机中运行程序是并不止一个的,为了如何方便地管理这些程序,操作系统提出了进程这个抽象的概念,相当于每一个进程都有一个运行中的程序进程能够同时执行是为什么?CPU的调度,也就是操作系统提出的上下文切换,通过保存和恢复进程在运行中的......
  • windows杀掉进程
    #查看端口占用netstat-ano|findstr"8761"#杀掉进程taskkill/pid44860......
  • 关于建立一个Java项目全过程(专对于新手)
    关于建立一个Java项目全过程一、Java开发环境搭建1.JDK与JREJDK=JRE+开发工具集(例如Javac编译工具等)JRE=JVM+JavaSE标准类库2.JDK的下载下载网址(Oracle公司官网):www.oracle.com这里链接具体下载网址:https://www.oracle.com/java/technologies/downloads/复制链接......
  • Linux进程间通信源码分析
    概览这篇文章从内核源码的角度整理一下Linux的进程间通信机制。众所周知,Linux操作系统的通信机制有以下几种:信号管道(分为匿名管道和有名管道)信号量共享内存消息队列Socket本文主要内容包括其中前五个。其中信号量、共享内存、消息队列在Linux中有两套API,实现方式大不......
  • 关于使用openssl命令-同时生成私钥与CSR-Certificate Signing Request的方法记录
    这里笔者主要讲述如何生成一个CSR证书签名请求文件,方法过程可能有多种笔者这里将使用一种最为简单简洁的方式进行讲解,使用到的环境与软件如下:操作系统:RedHatEnterpriseLinuxrelease8.7(Ootpa)openssl软件包版本:openssl-1.1.1k-9.el8_7.x86_64 1、创建私钥的同时,也就同......
  • nodejs守护进程 PM2
    概述PM2是用于Node.js应用程序的生产环境进程管理器,内置负载均衡器。它允许你将应用程序持续运行,无需停机重新加载,并简化常见的系统管理任务。官方网站Github特性进程管理:PM2可以启动、停止和重启Node.js应用程序进程,确保应用程序一直处于运行状态。它还提供了容错机制,......
  • 关于SQLAlchemy中update的使用参数synchronize_session
    update语句带上synchronize_session="fetch"或者带上synchronize_session=False是啥区别在SQLAlchemy中,当您使用update语句更新数据库中的记录时,可以使用`synchronize_session`参数来指定要同步的会话对象。-当`synchronize_session`设置为`False`时,会话对象不会自动同步,这意......
  • 关于本地代码上传gitee
    一、首先准备两个工具一个是git,一个是tortoisegittortoisegit  链接:https://pan.baidu.com/s/1IubajDKee2TSWVafCiRg_A提取码:xcjqgit链接:https://pan.baidu.com/s/1bcy-JeMfRQs-lbhpnA5bog提取码:xfui(安装步骤省略)二、安装完成右击会出现以下两个东西三、去注......