обратный вызов очереди безопасен, обеспечивая низкое время ожидания - PullRequest
0 голосов
/ 15 марта 2020

Во время интервью это было задано вопросом: проектируйте очередь обратного вызова, ориентированную на многопотоковое исполнение и гарантирующую низкое время ожидания, что-то справедливое. Есть несколько потоков, которые регистрируют функцию обратного вызова для разных событий. Поддержание зарегистрированной функции обратного вызова легко, поскольку мы можем поддерживать событие для функции обратного вызова. Я не уверен, как правильно решить эту проблему. Я думаю, что у нас может быть блокировка для этой структуры данных, которая поддерживает отображение события на обратный вызов. Любой поток мой мьютекс блокировки и обновления информации отображения. Я не уверен в части времени ожидания. Кроме того, как мы уведомляем, в основном, если событие получено в главном потоке, мы должны уведомлять функции обратного вызова непосредственно из основного потока или сигнализировать, используя сообщение. Я прошел этот пост C ++ 11 потокобезопасная очередь , где они говорят о поточно-безопасной очереди, но она не подходит для этого случая.

...