1.回顾
1.AOP面向切面编程: 作用:业务代码和非业务代码进行解耦。提高程序的可维护性。
2.AOP底层实现按照==动态代理实现==
3.AOP核心概念: 1.切面(切点 连接点 通知)
(1)引入spring-aspect切面依赖
(2)配置文件中开启切面注解
(3)创建切面类 @Aspect @Component
@Pointcut("execution()||@annotation()")
@Before() @After("切点的方法名()") @AfterThrowing @AfterReturning @Around
-
AOP应用场景: 【1】权限校验 【2】日志 【3】事务管理等
-
spring管理事务: 使用注解模式
(1)引入事务管理类 Spring-tx
(2)配置文件中引入事务管理类 DataSourceTransactionManager
(3)配置文件中开启事务注解驱动 <tx:annotation-driver />
(4)在需要事务管理的代码处使用@Transactional注解
2.什么是线程
线程,又称轻量级进程(Light Weight Process)。 进程中的一条执行路径,也是CPU的基本调度单位。 一个进程由一个或多个线程组成,彼此间完成不同的工作, 同时执行,称为多线程。
3.线程和进程的区别
1. 进程是操作系统资源分配的基本单位,而线程是CPU的基本调度单位。
2. 一个程序运行后至少有一个线程。
3. 一个进程可以包含多个线程,但是至少需要有一个线程,否则这个进程是没有意义。
4. 进程间不能共享数据段地址,但是同进程的线程之间可以。
4.线程的组成
任何一个线程都具有基本的组成部分
CPU时间片: 操作系统(OS)会为每个线程分配执行时间
运行数据:
堆空间: 存储线程需要的对象,多个线程可以共享堆中的数据。
栈空间: 存储线程需使用的局部变量,每个线程都拥有独立的栈。
线程的逻辑代码.
5.线程的特点
1. 线程抢占式执行
效率高
可防止单一线程长时间独占CPU.
2. 在单核CPU中,宏观上同时执行,微观上顺序执行
6.创建线程
7.常见方法
8.线程安全
9.同步方式