OMG!步步图解让你明白Spring循环依赖!看这一篇就够了
前言
本份文档内容涵盖: Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、 Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈,共1000多道面试题。
由于文档内容过多,所以只列举了以下目录部分,每个知识点都有更细化的内容!
1 进程
进程与程序
操作系统之中最为通用的概念就是「进程」。与此相关的面试题以及各种技术优化策略也层出不穷,足以够证明它对于理解操作系统中举足轻重的地位。事实上,通过「进程」,程序员可以更为直观的理解自己所开发的软件,并且能够从中深刻的认识到操作系统在软件运行做了些什么。
简单来讲,进程就是正在执行的程序。每个进程都包含有属于自己的一段地址空间,可以看作是一部分内存空间。在这样的地址空间中,进程能够根据需要进行内存的读写。
地址空间里面一般包含可执行程序,以及对应程序的数据及其堆栈。与每个进程相关的还有一组资源,通常包括寄存器(包括程序计数器和堆栈指针)以及运行程序所需的所有其他信息。从这可以看出,程序本身只是指令、数据以及其组织形式的一种描述方式,而程序的实际的运行实例就是一个进程。
不过进程与程序也并不完全等同,他们不是简单的一一对应的关系,而是在不同层面的表现形式。他们的主要区别在于:
- 程序是进程的静态文本,而进程是执行程序的动态过程;
- 进程与程序不是一一对应,同一程序可在不同进程中运行,一个进程也可以执行多个程序;
- 程序是一种长期可保存的文本,进程是暂时的一次执行过程;
- 进程是操作系统分配调度的独立单位,而程序是操作系统层级之上的应用程序。
进程状态
从上面我们知道,进程可看作是程序运行的动态过程。那么为了更好的对进程进行描述,我们给运行中的进程定义了三种基本状态,包括就绪、执行和阻塞。
这就是所谓的三态模型,描述了进程在整个运行周期中状态变化。每个状态的转移过程可以通过下图来表示。
就绪状态
是指进程已经被分配到了所有必需的资源,除了CPU
。在这个状态下,进程处于箭在弦上随时待发的状态,只要一获得CPU
的执行权限,进程便会立刻执行,从而进入执行状态。
当有多个处于就绪状态的进程时,不同的进程会根据优先级被划分入不同的队列。一个因为时间片用完而进入就绪状态的进程会被划分入低优先级队列,而因为I/O
操作完成而进入就绪状态的进程,则会被划分入高优先级队列。
执行状态
是指进程正常运行的状态。而当处于执行状态的进程由于需要等待某个事件发送(通常为等待I/O
)时,就会放弃CPU
,从而进入暂时的阻塞状态。CPU
这时一旦空出,通过不同的调度算法,CPU
又会被分配给另一个就绪进程。
阻塞状态
相当于就绪状态和执行状态的一个缓冲状态。当处于执行状态的进程无法正常执行时,会先进入阻塞状态,等待需要的请求执行完成,再回到就绪状态,等待下一次的CPU
分配和执行。
三态模式是用来描述进程状态转移最为精简的模型,实际上光这三种状态是无法处理复杂的进程运行过程的。所以为了对进程进行更好的管理和调度,在三态模型
OMG!步步图解让你明白Spring循环依赖!看这一篇就够了相关推荐
- Java面试官:步步图解让你明白Spring循环依赖!看完这篇彻底明白了
前言 不知道你们发现没有,在很多互联网公司基本上都是80后,90后居多,很少还有超过40岁的程序员.可能很多人心里都有一个疑问,那就是这些40多岁的程序员都干嘛去了呢?创业显然只是极少数的人,至于管理 ...
- 学会Linux Shell循环脚本看这一篇就够了
前言: 循环不管在程序中还是脚本中都需要经常用到,那么在 linux 中 简单的shell 脚本怎么写循环呢?在写shell脚本时,经常需要进行循环操作.这里简单谈一下 常用的 for循环结构 然后再 ...
- 关于spring框架,看这一篇就够了~~~
文章目录 一.Spring是什么? 1. Spring定义 2. Spring的优点 3. Spring的核心结构 4. Spring的核心思想 4.1 IOC和DI 4.2 AOP 二.IOC和AO ...
- 灵魂画手图解Spring循环依赖
目录 spring源码目录 git注释项目地址:https://github.com/chaitou/spring-framework-master.git 前言 想彻底弄清楚spring的循环依赖问 ...
- 图解Spring循环依赖
Spring 循环依赖 昨夜看<Spring 源码深度解析>,看到一个很有意思的地方,大早上就来记录一下,我觉得是比较重要的一个点,毕竟面试会问到. 解释一下什么循环依赖 在Spring中 ...
- 聊透Spring循环依赖
本文聊一下和依赖注入密切相关,并且在实际开发中很常见,面试也很喜欢问的一个问题:Spring是怎么解决循环依赖的? 之前就被问过Spring是怎么解决循环依赖的问题,当时年少无知,对Spring源码 ...
- 这个Spring循环依赖的坑,90%以上的人都不知道
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:Mythsman 原文:https://blog.myths ...
- 烂大街的Spring循环依赖该如何回答?
什么是循环依赖? 从字面上来理解就是A依赖B的同时B也依赖了A,就像上面这样,或者C依赖与自己本身.体现到代码层次就是这个样子 @Component public class A {// A中注入了B ...
- 终于有人把 Spring 循环依赖讲清楚了!
网上关于Spring循环依赖的博客太多了,有很多都分析的很深入,写的很用心,甚至还画了时序图.流程图帮助读者理解,我看了后,感觉自己是懂了,但是闭上眼睛,总觉得还没有完全理解,总觉得还有一两个坎过不去 ...
最新文章
- Hadoop-虚拟机环境准备
- gcc8之前,coredump文件无法显示正确的函数调用栈信息
- 免费Windows系统服务器,免费试用人数太多,Windows 365云电脑服务器炸了,官方紧急暂停...
- easyUI droppable组件使用
- 一个用WPF做的简单计算器源代码
- vs2010利用属性表自动配置OpenCV(XP的32位系统,opencv版本是2.4.10)
- 听说别人都在送小黄车月卡?神策数据送两个月!
- php金字塔手动输入行数,[菜鸟学php] php版自定义函数实现金字塔
- Opencv 图像入门一之基本操作
- [过年菜谱之]萝卜炖羊肉
- Swiper 滚动插件
- 开源框架_Index
- HDU1262 寻找素数对
- 2021-07-01样式和图片标签
- c++ pipe 同步 互斥_LiteOS内核教程04 | 信号量(任务同步)
- iOS申请真机调试证书-图文详解
- 查看打包成exe程序的批处理并提取代码
- 关于eclipse发送桌面快捷方式后打不开的问题
- 【JZOJ3337】wyl8899的TLE
- Android本地数据搜索实现