1.不阻塞主线程(UI线程)
2.为了更快的速度。主线程专门用来监听请求,子线程专门用来处理请求,可以获得大的吞吐量。web服务
3.某种虽然优先级很低的服务,但是却要不定时去做。比如Jvm的垃圾回收。
4.某种任务,虽然耗时,但是不耗CPU的操作时,开启多个线程,效率会有显著提高。
比如读取文件,然后处理。 磁盘IO是个很耗费时间,但是不耗CPU计算的工作。 所以可以一个线程读取数据,一个线程处理数据。肯定比一个线程读取数据,然后处理效率高。 因为两个线程的时候充分利用了CPU等待磁盘IO的空闲时间。
5.servlet
6.FTP下载,多线程操作文件
7.大量数据插入数据库,采用合适数量的线程
8.tomcat
9.后台任务:如定时向大量(100W以上)的用户发送邮件;定期更新配置文件、任务调度(如quartz),一些监控用于定期信息采集
---------------------
原文:https://blog.csdn.net/qq_36523667/article/details/79328044