怎么使用多线程?咱们必须先从什么状况下能用多线程,什么状况下不能用多线程提及。多线程
常见的多线程模型,对于每一个处理任务创建一个线程去处理,即Request Per Thread
这个传统的多线程模型能够针对3个场景出现的问题:
1. 对于每一个链接创建一个线程
这个模型,创建的线程数即链接数会受到操做系统的进程空间限制,建立的链接个数也会有限制。
2. 对于计算密集型,每一个计算创建一个线程
线程若是超过了CPU同时并行运行的数量时,线程之间的上下文切换的开销将会加大,吞吐量则会降低。
3. 若是对于IO密集型,则彻底没有必要用多线程,使用多线程只会使线程同时阻塞在IO上并发
多线程适合既有CPU操做,又有IO操做的场景异步
对于线程能够分为三类:高并发
常规的模型:使用专用处理用户请求的IO线程去处理高并发的用户请求,把请求经过队列的形式进行保存,用适合CPU并行数量的线程池从队列里获取请求去执行,最后若是须要进行本地IO读写,则须要使用单独的IO线程去读写本地文件。操作系统