1. 创建线程的三种方式 ? 如何启动一个线程 ?
(1)继承Thread
(2) 实现接口Runnable 无返回值 (常用)
(3)实现callable 有返回值
启动线程必须是调用start方法,而不是run方法,如果调用run方法,只是将Thread看作一个普通的对象,调用它里面的方法,此时run方法中 的执行的代码会成为主线程的一部分。
2. 线程池创建的作用是什么 ? 线程池的核心参数有哪些 ? 线程池执行任务的流程 ?
线程池的创建作用是:提高代码的复用性,节省系统的资源
线程的核心参数:
1.核心线程数:常驻在线程池
2.最大线程数:核心线程数+零时线程数
3.等待空闲时间:控制零时线程的销毁时间
4.等待空闲时间的单位:设置空闲时间的单位(毫秒,小时)
5.工作队列:如果执行的任务超过了处理的线程数量会把暂时无法处理的任务放入此队列;
6.线程工厂:可以控制池中线程的命名规则,
7拒绝策略 常用AbortPolicy
报错策略,直接抛异常
3. 什么是事务, 事务操作的指令是什么? Spring事务管理的注解是什么 ? 该注解可以作用在什么位置 ?
事务就是由一系列增删改数据操作,这些操作要么全部成功执行,要么全部不执行,以确保数据的一致性和完整性。
事务的指令: start transaction 开始事务
commit 提交任务 rollback :任务回滚
注解:Transational 放在接口上 方法上 类上 常放在方法上