Как реализовать приоритетность асинхронных методов?
Вообщем есть задание реализовать сервер статистики. Допустим, реализуется пару методов (запись данных в бд, чтение данных и сбор статистики). Так вот, как реализовать приоритетность методов, если нужно первоочерёдно выполнять сбор статистики? (То есть пришло на запись данных 100 запросов, затем одни на сбор. Допустим, выполняется 10 ассинхронных записей в базу, приходит запрос на сбор, мы дожидаемся завершения записи данных в базу, получаем данные и отправляем статистику, и только затем продолжаем запись )
Приоритетность совсем не означает первоочередность. В реальной жизни долгий и приоритетный процесс вполне может выполняться дольше (и завершиться позже), чем низкоприоритетный.
Соответственно задание скорее всего подразумевает нечто иное, а именно "разруливание" последовательностью выполнения асинхронных процессов. Соответственно надо гуглить семафоры, мьютексы и очереди.
ilionis: ну один из подходов в качестве примера: несколько процессов асинхронно что-то считают и складывают в очередь, а какой-то один процесс мониторит эту очередь и по накоплению подходящей пачки результатов - вываливает эту пачку куда-то, очистив очередь.