Потоки в контейнере должны будут делать два выхода из контейнера на увеличение и уменьшение счетчика. Каждый выход из контейнера все равно должен будет оформлен SafeMode.
Можно сделать ещё один тип динамического контейнера "потокобезопасный", когда в коде контейнера уже применяется критическая секция при активизиции/добавлении/уничтожении копии внутренней схемы. Но тут тоже есть потенциальные комбинации с deadlock - если внутри перед выходом или снаружи после выхода параллельный поток обращается к главному потоку, а главный поток обращается в это время к контейнеру, входы которого тоже защищены критической секцией. Требуется очень много думать. И главное - иметь примеры для тестирования.
Ответов: 4628
Рейтинг: 749
|
|||
карма: 26 |
|
Редактировалось 1 раз(а), последний 2019-01-11 14:03:31