为什么要使用多线程?
1.防止阻塞主线程,提高吞吐量:
你做WEB,容器帮你做了多线程,但是他只能帮你做请求层面的。简单的说,可能就是一个请求一个线程。或多个请求一个线 程。如果是单线程,那同时只能处理一个用户的请求。
2,提高资源的利用率
应用场景:
1,最典型的应用比如tomcat,tomcat内部采用的就是多线程,上百个客户端访问同一个web应用,tomcat接入后都是把后续的处理扔给一个新的线程来处理,这个新的线程最后调用到我们的servlet程序,比如doGet或者doPost方法。
2,做登录业务时使用到sms短信网关业务,创建子线程,让子线程去调用sms服务,主线程则返回,这样做可以提高用户的体验度
3.定时向大量(100w以上)的用户发送邮件;
线程与进程
进程:
*是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间
线程:
*是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行. 一个进程最少 有一个线程
*线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分 成若干个线程