- 发挥多核cpu的优势
在多核cpu上,多线程能够让多段逻辑同时执行,提升执行效率
- 防止阻塞
对于一个cpu核心,如果只有一个线程,如果当前线程阻塞了,可能是在等待资源等等,那这个核心的cpu工作就停止了,如果是多线程的话,当前阻塞,cpu就可以切换到其他线程继续执行;事实上除非cpu密集型的作业,否则大部分时间线程都是阻塞在io中,而平时常见的作业类型都是充斥着大量io操作的
- 便于建模
以浏览器举例,如果浏览器只有一个线程,那这个线程首先要负责获取资源,还要一边获取一边解析,解析完还要渲染,同时可能还会有用户的操作穿插其中。难以想象这个代码要怎么写,而如果拆分成多线程,每个线程分别负责获取资源,解析,渲染,响应用户操作。这样就清晰很多