More precisely, a concurrent algorithm (or concurrent program) is the description of a set of sequential state machines that cooperate through a communication medium, e. g., a shared memory. Many languages are dogmatic about the solutions they offer for handling concurrent problems.