线程池工作原理
- 接受任务,放入仓库
- 工作线程从仓库取任务,执行
- 如果仓库里没有任务,工作线程进入阻塞
任务用什么表示
Runnable
Callable 会有回调
仓库
map list 队列
BlockingQueue阻塞队列,在队列满是放入阻塞,为空时获取阻塞
Executor void excute(Runnable command)
ExecutorService 加入关闭方法 和对Callable、Future的支持
ForkJoinPool
非核心线程创建时机
1.core max
2.queue max-------->非核心线程
Excutors 创建线程池的工厂类,减轻我们的任务
newFixedThreadPool(int nThreads)创建一个固定大小、任务队列容量无界的线程池。
newCachedThreadPool ()
newScheduledThreadPool(int corePoolSize)
事务
对应的单词Transaction
一个最小的不可再分的工作单元
通常一个事物对应一个完整的业务
而一个完整的十五需要批量的DML(insert updata delete)语句共同联合完成
事务只和DML语句有关,或者说DML语句才有事务
要不全成功,要不全失败