モジュール性

プログラムは、相互に作用しながら希望の結果またはサービスを作り出す、 多数の別個のパーツの形でモデル化されることがよくあります。

プログラムは、 そのプログラムのさまざまな部分の間で複数の機能を実行する、 単一の、複雑なエンティティーとしてインプリメントすることができます。 さらに単純なソリューションは、複数のエンティティーをインプリメントすることによって構成されており、 それぞれのエンティティーが他のエンティティーとリソースを共用しながらプログラムの一部分を実行します。

複数のエンティティーを使用することによって、 プログラムを別個のアクティビティーに基づいて分割し、 それぞれに関連するエンティティーを持たせることができます。 これらのエンティティーは、情報を交換する場合を除いて、 プログラムの他の部分について何も知っている必要はありません。 このような場合、データの保全性を保つために、部分間の同期化が必要です。

スレッドは、モジュラー・プログラミングに合ったエンティティーです。 スレッドは、簡単なデータ共用 (プロセス内のすべてのプロセスが同じアドレス・スペースを共用する)、および 強力な同期機能 (相互排他ロック (mutex) や条件変数など) を提供します。