2019-10-16 又是新的一天,开心

线程池工作原理

  • 接受任务,放入仓库
  • 工作线程从仓库取任务,执行
  • 如果仓库里没有任务,工作线程进入阻塞

任务用什么表示
Runnable
Callable 会有回调

仓库
map list 队列
BlockingQueue阻塞队列,在队列满是放入阻塞,为空时获取阻塞


2019-10-16 又是新的一天,开心_第1张图片
仓库用什么.jpg

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语句才有事务
要不全成功,要不全失败

你可能感兴趣的:(2019-10-16 又是新的一天,开心)