首页 > 编程语言 >并发编程

并发编程

时间:2022-11-17 16:48:38浏览次数:29  
标签:计算机 编程 程序 并发 进程 CPU 运行

并发编程理论

"""
计算机中真正干活的是CPU
"""

操作系统发展史:
	1.穿孔卡片阶段
   计算机很庞大,使用很麻烦,一次只能给一个人使用,期间很多时候计算机都不工作
	好处:程序员独占计算机,为所欲为
  	坏处:计算机利用率太低,浪费资源
  	2.联机批处理系统
    提前使用磁带一次性录入多个程序员编写的程序,然后交给计算机执行
    CPU工作效率有所提升,不用反复等待程序录入
    3.脱机批处理系统
    极大地提升了CPU的利用率
总结:操作系统发展史就是CPU利用率提升的过程

单道技术

"""
在学习并发编程的过程中 不做刻意提醒的情况下 默认一台计算机就一个CPU(只有一个干活的人)
"""
所有的程序都排队执行,过程中不能重合

image

多道技术

详细:
1.切换
	计算机的CPU在两种情况下会切换(不让你用,给别人用)
   1.程序有IO操作
	输入\输出操作
    	input、time.sleep、read、write
   2.程序长时间占用CPU
	让多个程序都能被CPU运行一下
2.保存状态
CPU每次切换走之前都需要保存当前操作的状态,下次切换回来基于上次的进度继续执行
"""
开了一家饭店 只有一个服务员 但是同时来了五桌客人
	请问:如何让五桌客人都感觉到服务员在服务他们
		让服务员化身为闪电侠 只要客人有停顿 就立刻切换到其他桌 如此往复
"""

image

进程理论

进程与程序的区别:
	程序:一堆死代码(还没有被运行起来)
 	进程:正在运行的程序(死代码被运行起来了)
进程的调度算法(重要):
	1.FCFS(先来先服务)
    对短作业不友好
  	2.短作业优先调度
    对长作业不友好
   3.时间片轮转法+多级反馈队列
	将时间均分,然后根据进程时间长短再分多个等级
    等级越靠下表示耗时越长,每次分到的时间越多,但是优先级越低

image

进程的三状态

就绪态:
	所有的进程在被CPU执行之前都必须先进入就绪态等待
运行态
	CPU正在执行
阻塞态
	进程运行中出现了IO操作,就会进入阻塞态,阻塞态如法直接进入运行态,需要先进入就绪态

image

标签:计算机,编程,程序,并发,进程,CPU,运行
From: https://www.cnblogs.com/zhanghong1229/p/16899917.html

相关文章

  • 02.编程基本概念
    一、变量与可变性1、变量在Rust语言中,变量默认是不可变的(immutable)。当变量不可变时,一旦值被绑定到一个名称上,你就不能改变这个值。fnmain(){letmutx=5;......
  • Mac电脑专业编程和数学计算必备工具MATLAB R2022b 完美使用
     mac软件下载:MATLABR2022bforMac怎么安装Mac电脑专业编程和数学计算必备工具MATLABR2022b完美使用资源啊,商业数学软件MATLABR2022更新了,作为数学类科技应用软件......
  • nginx高并发优化之缓存配置
    一、配置http{proxy_cache_path/app/cache/levels=1:2keys_zone=proxy_cache:10mmax_size=10ginactive=60muse_temp_path=off;upstreambackend{server127......
  • 【书籍分享】Java编程思想(Think In Java) 第四版 完整中文高清文字版 非扫描版【pdf版+
    自取:https://url03.ctfile.com/f/24333903-724740746-79fa44?p=5831(访问密码:5831),进入下载页面,选择【普通下载】压缩包内容:chm版本:pdf版本:......
  • Spring的@Async异步编程
    使用@Async注解时,推荐使用自定义线程池的模式;查看源码,@Async的默认线程池为SimpleAsyncTaskExecutor,默认线程池有如下弊端:在线程池应用中,参考阿里巴巴java开发规范:线程池不......
  • 视频直播app源码,react 编程式导航实现页面跳转
    视频直播app源码,react编程式导航实现页面跳转一介绍编程式导航:通过js代码来实现页面跳转 案例:点击登录按钮,登录成功后,通过代码跳转到后台首页,如何实现? 答......
  • 网络编程
    CS架构与BS架构CS架构是Client/Service这两个单词的首字母,指的是客户端服务器架构的意思,很多常见的软件都是这种架构。解释:对于CS架构,最为常见的例子就是网络游戏,比如L......
  • 【C++高级编程】(二)设计专业的C++程序
    本章内容:程序设计的定义程序设计的重要性C++程序设计的特点高效C++程序设计的两个基本主题:抽象以及重用不同类型的重用代码代码重用的优缺点重用代码的常用策略及......
  • python神经网络编程2之用python搭建神经网络
    【python基础】环境:JupyterNotebookforninrange(10):print(n)pass#标志循环结束,下一行回正常缩进,done只打印一次我也可以删掉orzprint("done") ......
  • 解决单台服务器作为客户端请求高并发时端口被占用完的情况
    今天领导下达性能指标800吞吐量的任务,只给我一台服务器作为jmeter的客户端,当吞吐量压到400吞吐量左右的时候一直报错,且服务端又没有收到错误的响应,猜测是jmeter客户端问题......