📜  操作系统中多线程的好处

📅  最后修改于: 2021-09-28 10:10:36             🧑  作者: Mango

先决条件 – 操作系统 – 线程
多线程编程的好处可以分为四大类:

  1. 响应能力——
    交互式应用程序中的多线程可以允许程序继续运行,即使它的一部分被阻塞或正在执行冗长的操作,从而提高对用户的响应能力。

    在非多线程环境中,服务器侦听某个请求的端口,当请求到来时,它处理该请求,然后继续侦听另一个请求。处理请求所花费的时间使其他用户不必要地等待。相反,更好的方法是将请求传递给工作线程并继续侦听端口。

    例如,多线程 Web 浏览器允许用户在一个线程中进行交互,同时在另一个线程中加载视频。因此,无需等待整个网页加载,用户可以继续查看网页的某些部分。

  2. 资源共享——
    进程只能通过以下技术共享资源:
    • 消息传递
    • 共享内存

    此类技术必须由程序员明确组织。但是,线程默认共享它们所属进程的内存和资源。
    共享代码和数据的好处是它允许应用程序在同一地址空间内拥有多个活动线程。

  3. 经济 –
    就时间和空间而言,为进程创建分配内存和资源是一项代价高昂的工作。
    由于线程与其所属的进程共享内存,因此创建和上下文切换线程更经济。通常,创建和管理进程比线程消耗更多的时间。
    例如,在 Solaris 中,创建进程比创建线程慢 30 倍,上下文切换慢 5 倍。

  4. 可扩展性——
    在多处理器架构的情况下,多道编程的好处大大增加,其中线程可能在多个处理器上并行运行。如果只有一个线程,则不可能将进程划分为不同处理器可以执行的较小任务。
    无论有多少处理器可用,单线程进程都只能在一个处理器上运行。
    多 CPU 机器上的多线程增加了并行性。

参考资料 – Abraham Silberschatz、Peter B. Galvin 和 Greg Gagne 的操作系统概念