Действительно повышает:: asio:: deadline_timer используют поток для каждого таймера?

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

9
задан Alex B 9 March 2010 в 01:54
поделиться

1 ответ

Boost не использует поток на таймер, он сохраняет очередь таймера. Каждый таймер создается с помощью объекта boost :: asio :: io_service , который выполняет фактическую работу.

Этот объект может управлять своей работой в одном или нескольких потоках, , когда вы запускаете boost :: asio :: io_service :: run () явно из нескольких потоков , но есть нет однозначного соответствия между таймерами и потоками, и Asio не будет создавать потоки за вашей спиной.

12
ответ дан 4 December 2019 в 15:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: