Александр Корнилов
Старший разработчик @ АО Лаборатория Касперского
Нижний Новгород

Новый взгляд на синхронизацию доступа к общим данным в многопоточном коде

  • Зал : Зал 3.1
  • Категории: Разработка
  • Секции: C++

Описание:

Большинство проблем в многопоточном коде связано с ошибками синхронизации при доступе к общим данным.

Ошибки чаще всего происходят из-за некорректного использования базовых примитивов синхронизации.

Некорректное использование — это обычно следствие ручного управления базовыми примитивами синхронизации, которые находятся на достаточно низком уровне абстракции.

Ручное управление базовыми примитивами синхронизации сродни ручному управлению памятью, но приводят к сбоям, которые в разы сложнее проанализировать и устранить.

Существующие методологии для решения такого рода дефектов в коде, на мой взгляд, недостаточно развиты и не решают проблему на системном уровне.

Необходим новый подход, который повысил бы уровень абстракции инструментов, обеспечивающих синхронизацию при доступе к общим данным.

Пример: ручное управление памятью. Одно из решений проблемы введение дополнительной более высокоуровневой абстракции - умные указатели.

О спикере

Александр Корнилов

Старший разработчик @ АО Лаборатория Касперского
Нижний Новгород

Занимаюсь промышленной разработкой ПО с 2005 года. Принимал участие в проектах таких крупных международных компаний, как Jaguar, Crysler, General Motors, Daimler, Samsung, Nokia в сфере Automotive и мобильной разработки. Имею опыт программирования на C/C++, Java, C#, Kotlin. В даннный момент принимаю участие в разработке новой микроядерной и киберимунной операционной системы KasperskyOS.

Похожие доклады