上QQ阅读APP看书,第一时间看更新
1.19 本章小结
本章介绍了Thread类的API,在使用这些API的过程中,会出现一些意想不到的情况,其实这也是体验多线程不可预知性的一个体现,学习并掌握这些大部分的常用情况,也就掌握了多线程开发的命脉与特点,为进一步学习多线程打下坚实基础。
使用多线程能大幅提高运行效率的主要场景就是任务中有阻塞状态,使用部分线程去执行有阻塞状态的任务,再使用其他线程执行非阻塞状态的任务,阻塞状态和非阻塞状态的任务同时执行,而不是排队执行。当任务出现阻塞时,CPU会执行非阻塞的任务,更高效地利用CPU空闲资源做有意义的事情,不至于空等待,从而大幅提高运行率。如果在任务全是非阻塞的情况下使用多线程,由于线程存在上下文切换,使用多线程程序运行效率反而可能降低。所以多线程并不是万能药,在正确的场景使用多线程才能更好地发挥它的优势。