Имя шаблона дизайна блокировки (с внутренними методами) - PullRequest
2 голосов
/ 21 сентября 2010

Я вспоминаю шаблон проектирования для обработки проблем с блокировками в C ++ (где некоторые блокировки не повторяются) путем разделения методов на «внешние» и «внутренние». Внешние приобретают блокировки и могут вызывать внутренние, которые в свою очередь утверждают, что блокировки удерживаются. Внешние не могут вызывать другие внешние (потому что это зашло бы в тупик), и по той же причине внутренние не могут вызывать внешние. Кто-нибудь помнит название этого паттерна?

Ответы [ 3 ]

1 голос
/ 21 сентября 2010
1 голос
/ 21 сентября 2010

Я не думаю, что это действительно шаблон проектирования - для меня это практика реализации, предназначенная для предотвращения взаимных блокировок и обнаружения их в случае неправильного использования класса.

EDIT: Тем не менее, Дуглас Шмидт не согласен, поэтому я думаю, что это образец.

0 голосов
/ 21 сентября 2010

Этот шаблон применим не только к блокировкам и потокам, но и ко многим другим ситуациям, когда API должен «что-то настроить», что-то с этим сделать, а затем снять. Исторические примеры включают в себя API-интерфейсы, которые переключались на свой собственный стек, или графические аппаратные системы, которые были бы объединены в память, манипулированы и выведены из банка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...