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