网络并发编程

网络并发编程旨在提升CPU效率,涉及操作系统发展、多道技术、进程理论及并行并发等概念。操作系统通过多道技术提高CPU利用率,进程在就绪、运行和阻塞三种状态间切换。同步与异步描述任务提交后的状态,阻塞与非阻塞描述进程执行状态。进程间通信可通过IPC机制实现,生产者消费者模型是常见场景。了解进程线程的创建、数据共享及状态管理对于理解和实现并发编程至关重要。
摘要由CSDN通过智能技术生成

网络并发编程的本质就是为了提升CPU的工作效率.

操作系统发展史

多道技术

进程理论

进程的并行与并发

进程三状态

同步与异步

阻塞与非阻塞

同步异步与阻塞非阻塞

创建进/线程的两种方式

join方法

进程间默认数据隔离

IPC机制

生产者消费者模型

查找进/线程相关方法

守护进/线程

僵尸进程与孤儿进程

操作系统发展史

计算机的三大核心硬件是: CPU, 内存, 硬盘. 其中CPU是整个计算机执行效率的核心

操作系统经历了三个时代;
1.穿孔卡片时代
CPU的利用率非常低, 优点是一个人独占计算机.
2.联机批处理系统
缩短了录入数据的时间,提升了CPU利用率
3.脱机批处理系统
是现代计算机的雏形, 提升了CPU的利用率

多道技术

其前提是一个CPU
单道技术是所有的程序排队执行, 总耗时是所有程序耗时之和.
多道技术是计算机利用空闲时间提前准备好一些数据,提高效率, 总耗时较短.

多道技术的特点是切换+保存状态
1.CPU在两种状态下会切换去执行其他操作
1.程序自身进入IO操作[IO操作: 输入输出操作, 获取用户输入, 读取文件,保存文件,time.sleep()等
2. 程序长时间占用CPU.
2. 保存状态 每次切换之前都要记录下当前执行的状态,之后切回来基于当前状态继续执行.

进程理论

进程: 正在被运行的程序
进程的调度算法:
1.先来先服务 >>> 对耗时较短的程序不友好
2.短作业优先调度 >>> 对耗时长的程序不友好
3.时间片轮转法+多级反馈队列
将固定的时间均分成很多份,所有的程序来了都平分一份 >>> 分配多次之后如果还有程序需要运行, 则将其分到下一层 >>> 越往下表示程序总耗时越长,每次分的时间片越多则优先级越低.

进程的并行与并发

并行: 多个进程同时执行 , 需要有多个CPU
并发:多个进程看上去像是同时执行就可以称之为并发, 单个CPU完全可以实现并发的效果, 如果是并行那么肯定也属于并发. >>>> 描述一个网站很厉害能同时服务很多人>>>> 这个网站能够支持14亿并发量(高并发) >>> 国内最厉害的网站>>>12306

进程三状态

就绪态: 所有程序被运行期都要经过就绪态(准备状态)
运行态:运行过程中如果出现了IO操作,则进入阻塞态, 如果时间片段用完则继续进入就绪态
阻塞态: 想要进入运行态就必须经过就绪态

同步和异步

用于描述人物的提状态
同步: 提交完任务后原地等待任务结束, 不做任何事.
异步: 提交完任务后不原地等待直接去做其他事情, 有了结果自动提醒.

阻塞与非阻塞

用于描述进程的执行状态
阻塞为阻塞态
非阻塞为就绪态或者运行态

同步异步与阻塞非阻塞

同步阻塞: 排队,并且在队伍中做什么都不做
同步非阻塞; 排队, 在排队过程中做一些事情
异步阻塞: 取号, 在旁边等待被叫号,期间什么也不做
异步非阻塞: 取号,在旁边等待叫号,期间做想做的事.
其中异步非阻塞状态下 CPU利用率最高.

创建进程的两种方式

1.双击桌面程序图标
2.代码创建

from multiprocessing import Process
import time


def task(name):
    print(f'{
     name}开始运行')
    time.sleep(3)
    print(f'{
     name}运行结束')

if __name__ == '__main__':
    p = Process(target=task,args=('lili',))  # 创建一个进程对象
    p.start()  # 告诉操作系统创建一个进程(异步操作)
    # task('lili')   # 普普通通的函数调用是 同步操作
    print('主进程')  

“”" 创建进程的代码在不同的操作系统中, 底层原理有区别.
在Windows中, 创建进程类似于导入模块
if name == ‘main’: 启动脚本在MAC,LINUX中创建进程类似于直接copy,不需要启动脚本, 但是为了兼容性, 也可以使用.“”"

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值