锁和其他同步机制一样,定义了一个在同一时间只允许一个线程进入的临界区。对临界区的定义必须谨慎,临界区中应该只包含真正需要互斥执行的指令,尤其是在临界区中包含冗长的操作时。如果临界区中存在不使用共享资源的冗长操作,则应用程序的性能会比可能的更差。
本节将通过一个案例说明同一个任务在临界区之内和之外分别执行冗长操作时的性能差异。