多线程的基本理解

2020-12-02  本文已影响0人  iOS心安

首先我们来了解线程和进程的关系

那么有了进程为什么还要线程?以及线程的好处有什么?

进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率。很多人就不理解了,既然进程这么优秀,为什么还要线程呢?其实,它还是会存在一些问题。主要是以下方面:

从这里可以看出单独只能做一件事的进程效率会很低,就好像我们要做一件事,需要多方面的协助。有听、看、行动等多种行为同时进行,这样效率才会起来,而解决的方法就是要线程来解决。线程就像火车的一节车厢,进程则是火车。车厢(线程)离开火车(进程)是无法跑动的,而火车(进程)至少有一节车厢(主线程)。多线程可以看做多个车厢,它的出现是为了提高效率。

因为要并发,我们发明了进程,又进一步发明了线程。只不过进程和线程的并发层次不同:进程属于在处理器这一层上提供的抽象;线程则属于在进程这个层次上再提供了一层并发的抽象。如果我们进入计算机体系结构里,就会发现,流水线提供的也是一种并发,不过是指令级的并发。这样,流水线、线程、进程就从低到高在三个层次上提供我们所迫切需要的并发!

除了提高进程的并发度,线程还有个好处,就是可以有效地利用多处理器和多核计算机。现在的处理器有个趋势就是朝着多核方向发展,在没有线程之前,多核并不能让一个进程的执行速度提高,原因还是上面所有的两点限制。但如果讲一个进程分解为若干个线程,则可以让不同的线程运行在不同的核上,从而提高了进程的执行速度。

多线程与主线程

本文参考 wuhao丶hazir

推荐阅读下篇文章: 线程的状态和生命周期

上一篇 下一篇

猜你喜欢

热点阅读