多线程编程的好处主要可以分为四类:

  • 响应度高:对于多线程的交互式应用程序,即使它的一部分被阻塞或执行冗长的操作,也可以允许程序继续运行,从而增加对用户的响应能力。这种特性在设计用户界面时特别有用。例如,考虑当用户单击一个会导致耗时操作的按钮时发生了什么。如果是单线程应用程序的话,该程序对用户没有响应,直到该操作完成了。相反,如果耗时的操作是在单独的线程中执行的,则应用程序将可以继续保持可响应性。
  • 资源共享:进程只能通过共享内存和消息传递等技术来共享资源。这些技术必须由程序员统一明确地安排。但是,线程默认共享它们所属的进程的内存和资源。共享代码和数据的好处是,它允许应用程序在相同的地址空间中有多个不同的活动线程。

  • 经济:为进程创建分配内存和资源的开销很大。因为线程共享它们所属进程的资源,因此创建和上下文切换线程更加经济。从经验上判断开销上的差异可能是困难的,但是总的来说,创建和管理进程比线程要花费更多的时间。例如,在Solaris中,创建进程的速度大约是创建线程的30倍,而上下文切换的速度慢了大约5倍。

  • Scalability:多线程的好处在多处理器体系架构中会影响的更大,此时线程就可能在不同的处理核心上并行运行。单线程进程只能在一个处理器上运行,不管有多少是可用的。

results matching ""

    No results matching ""