多线程模型


多线程允许程序的多个部分同时执行。这些部分称为线程,是进程中可用的轻量级进程。因此,多线程通过多任务处理导致 CPU 的最大利用率。

多线程的主要模型是一对一模型、多对一模型和多对多模型。这些模型的详细信息如下所示:

一对一模型

一对一模型将每个用户线程映射到一个内核线程。这意味着许多线程可以在多处理器上并行运行,并且当一个线程进行阻塞系统调用时,其他线程可以运行。

一对一模型的一个缺点是创建用户线程需要相应的内核线程。由于大量的内核线程会给系统带来负担,因此系统中线程的数量受到限制。

演示一对一模型的图表如下所示:

One to One Model

多对一模型

多对一模型将多个用户线程映射到一个内核线程。此模型非常高效,因为用户空间管理线程管理。

多对一模型的一个缺点是线程阻塞系统调用会阻塞整个进程。此外,由于一次只有一个线程可以访问内核,因此多个线程无法并行运行。

演示多对一模型的图表如下所示:

Many to One Model

多对多模型

多对多模型将多个用户线程映射到相同数量或更少的内核线程。内核线程的数量取决于应用程序或机器。

多对多模型没有一对一模型或多对一模型的缺点。可以根据需要创建任意数量的用户线程,并且它们相应的内核线程可以在多处理器上并行运行。

演示多对多模型的图表如下所示:

Many to Many Model

更新于: 2020年6月24日

16K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告