多线程目的:充分利用CPU做事(多做事)
线程的本质:将代码送给CPU执行
线程池的本质:
线程池的工作原理:
- 接收任务,放入仓库(任务队列BlockingQueue)
- 工作线程从仓库取任务,执行
- 当没有任务时,线程阻塞,当有任务时,唤醒线程执行
BlockingQueue
如何定义线程池的个数?
任务分为两种:IO型任务和计算型任务,web项目中大多数任务为IO型任务
计算型任务:cpu数量的1~2倍
IO型任务:需要多一些线程,要根据具体的IO阻塞市场进行考量决定。如tomcat中默认的最大线程数为:200,也可考虑根据需要最小数量和最大数量间自动增减线程数。