Войти через соцсеть:
Войти через email:
Большинство проблем в многопоточном коде связано с ошибками синхронизации при доступе к общим данным.
Ошибки чаще всего происходят из-за некорректного использования базовых примитивов синхронизации.
Некорректное использование — это обычно следствие ручного управления базовыми примитивами синхронизации, которые находятся на достаточно низком уровне абстракции.
Ручное управление базовыми примитивами синхронизации сродни ручному управлению памятью, но приводят к сбоям, которые в разы сложнее проанализировать и устранить.
Существующие методологии для решения такого рода дефектов в коде, на мой взгляд, недостаточно развиты и не решают проблему на системном уровне.
Необходим новый подход, который повысил бы уровень абстракции инструментов, обеспечивающих синхронизацию при доступе к общим данным.
Пример: ручное управление памятью. Одно из решений проблемы введение дополнительной более высокоуровневой абстракции - умные указатели.