Асинхронне паралельне програмування є досить складним і таким, що приводить до помилок. Найчастіше помилки пов'язані із "забуванням" Р- та V- операцій або застосуванням неправильного семафора. Вони призводять до серйозних наслідків на стадії виконання програм. Із застосуванням моніторів існує небезпека зробити помилку вживання умовних змінних та операцій wait і signal. Аналіз показує, що помилки програмування синхронізації процесів можуть спричинити такі проблеми як несумісні дані та взаємоблокування (DeadLock/LiveLock.)
Несумісні дані
Після виконання паралельної операції числове значення або співвідношення між даними стає несумісним тоді, коли воно не дорівнює числу, яке могли б дістати в результаті послідовної роботи ресурсів. Без достатніх паралельних механізмів контролю при виконанні паралельних процесів досить легко виникають дані, що містять у собі помилки. Тут необхідно розрізняти такі проблеми:
- втрачена модифікація даних (lost update problem);
- несумісний аналіз (inconsistent analysis problem);,
- не підтверджена залежність (uncommitted dependency problem).