模块化

程序经常作为许多彼此之间交互的不同部分建模,以生成想要的结果或服务。

可以将程序作为一个在该程序的不同部分间执行多个功能的单独的、复杂的实体来实现。 一个更加简单的解决方案是:执行多个实体,每个实体执行程序的一个部分并与其他实体共享资源。

通过使用多个实体,一个程序可根据其独特的活动分成多个部分,每个部分具有一个关联的实体。 除实体间交换信息之外,这些实体不必知道有关程序的其他部分的任何情况。 在这些情况下,它们彼此之间必须同步以保证数据的完整性。

线程是非常适合模块编程的实体。 线程提供了简单的数据共享(一个进程中的所有线程共享同一地址空间)和功能强大的同步工具,诸如 mutex(互斥锁)和条件变量。