6.2 线程和进程的比较
线程和进程都能够提供并发程序执行。当您决定是使用多个进程还是使用多个线程时,上下文切换需要使用的系统资源、吞吐量、实体间通信、程序简化等都是需要考虑的问题。
6.2.1 上下文切换
当您创建一个进程时,可能只需要主线程这一个线程就可以实现进程的功能了。当进程有着多个并发子任务时,多个线程能够在上下文切换的开销较少的情况下提供子任务的异步执行。如果处理器可用性较低或者只有一个内核,并发执行的进程由于需要进行上下文切换而带来较大的开销。相同的情况下,如果使用线程,只有当下一个要指派到处理器的线程来自另一个进程时,才会发生进程上下文切换。较少的开销意味使用的系统资源较少,而且上下文切换的时间也更短。当然,如果有足够的处理器用于周转,那么上下文切换就不再是一个问题。