声明式事务控制
什么是声明式事务控制Spring的声明式事务顾名思义就是采用声明的方式来处理事务。这里所说的声明,就是指在配置文件中声明,用在Spring配置文件中声明式的处理事务来代替代码式的处理事务。 声明式事务处理的作用 事务管理不侵入开发的组件。具体来说,业务逻辑对象就不会意识到正在事务管理之中,事实上也应该如此,因为事务管理是属于系统层面的服务,而不是业务逻辑的一部分,如果想要改变事务管理策划的话,也只需要在定义文件中重新配置即可 在不需要事务管理的时候,只要在设定文件上修改一下,即可移去事务管理服务,无需改变代码重新编译,这样维护起来极其方便 注意:Spring声明式事务控制底层就是AOP。 声明式事务控制的实现声明式事务控制明确事项: 谁是切点? 谁是通知? 配置切面? 声明式事务控制的配置要点 平台事务管理器配置 1234<!--配置平台事务管理器--><bean id="transactionManager"...
编程式事务控制三大对象
PlatformTransactionManagerPlatformTransactionManager接口是spring 的事务管理器,它里面提供了我们常用的操作事务的方法。 TransactionDefinitionTransactionDefinition...
基于注解的AOP开发
快速入门基于注解的AOP开发步骤: 创建目标接口和目标类(内部有切点) 1234567891011package cn.imqinhao.anno;/** * @author qinhao * @version 1.0 */public interface TargetInterface { public void save();} 1234567891011121314package cn.imqinhao.anno;import org.springframework.stereotype.Component;/** * @author qinhao * @version 1.0 */public class Target implements TargetInterface { @Override public void save() { System.out.println("save running..."); ...
基于XML的AOP开发
快速入门 导入AOP相关坐标 12345678910<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.5.RELEASE</version></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.13</version></dependency> 创建目标接口和目标类(内部有切点) 1234567891011package cn.imqinhao.aop;/** * @author qinhao * @version 1.0...
Spring的AOP简介
什么是AOPAOP为Aspect Oriented...
处理机调度
调度的基本概念 高级调度 简化理解:好几个程序需要启动,到底先启动哪个? 高级调度(作业调度)。按一定的原则从外存的作业后备队列中挑选一个作业调入内存,并创建进程。。作业调入时会建立PCB,调出时才撤销PCB。 低级调度 低级调度(进程调度/处理机调度) —— 按照某种策略从就绪队列中选取一个进程,将处理机分配给它。 内存不够时,可将某些进程的数据调出外存。等内存空闲或者进程需要运行时再重新调入内存。 暂时调到外存等待的进程状态为挂起状态。被挂起的进程PCB会被组织成挂起队列。 中级调度(内存调度) —— 按照某种策略决定将哪个处于挂起状态的进程重新调入内存。 一个进程可能会被多次调出、调入内存,因此中级调度发生的频率要比高级调度更高。 进程的挂起态与七状态模型暂时调到外存等待的进程状态为挂起状态(挂起态,suspend) 挂起态又可以进一步细分为就绪挂起、阻塞挂起两种状态 三层调度的联系、对比
线程、多线程模型
什么是线程可以把线程理解为”轻量级进程“。 线程是一个基本的CPU执行单元,也是程序执行流的最小单位。 为什么要引入线程还没引入进程之前,系统中的各个程序只能串行执行。 有的进程可能需要“同时”做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了“线程”,来增加并发度。 引入了线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务。 引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机、内存地址空间等都是分配给进程的)。 引入线程机制的变化 线程有哪些重要的属性 线程的实现方式用户级线程(User-Level Thread,...
进程通信
进程通信顾名思义,进程通信就是指进程之间的信息交换。 进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存空间地址相互独立。 为了保证安全,一个进程不能直接访问另一个进程的地址空间。 但是进程之间的信息交换又是必须实现的。为了保证进程间的安全通信,操作系统提供了一些方法。 共享存储两个进程对共享空间的访问...
进程控制
什么是进程控制 进程控制的主要功能是对操作系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。 怎么实现进程控制 原语的执行具有原子性,即执行过程只能一气呵成,期间不允许被中断。 可以用“关中断指令”和“开中断指令”这两个特权指令实现原子性。 CPU执行了关中断指令之后,就不再例行检查中断信号,直到执行开中断指令之后才会恢复检查。 进程控制相关的原语进程的创建 进程的终止 进程的阻塞和唤醒 进程的切换 无论哪个进程控制原语,要做的无非三类事情: 更新PCB中的信息(修改进程状态,保存/恢复运行环境) 将PCB插入合适的队列 分配/回收资源
进程的状态与转换
状态 进程PCB中,会有一个变量state来表示进程的当前状态。 为了对同一状态下的各个进程进行统一的管理,操作系统会将各个进程的PCB组织起来。 进程的整个生命周期中,大部分时间都处于三种基本状态。 运行态 当CPU空闲时,操作系统就会选择一个就绪进程,让它上处理机运行。 如果一个进程此时正在CPU上运行,那么这个进程处于“运行态”。CPU会执行该进程对应的程序(执行指令序列) 单CPU情况下,同一时刻只会有一个进程处于运行态,多核CPU情况下,可能有多个进程处于运行态。 就绪态 当进程创建完成后,便进入“就绪态”,处于就绪态的进程已经具备运行条件 ,但由于没有空闲CPU,就暂时不能运行。...