In a multithreaded program, you must use synchronization objects whenever there is a possibility of conflict in accessing shared data. The following sections discuss DECthreads synchronization objects: mutexes and condition variables.