The following sections describe four software models for which multithreaded programming is especially well suited: