I have a list of items that I need to update on different intervals. The list can grow to be thousands of items long. Each item could potentially have a different interval. If I create one timer per item, am I going to saturate the system with threads? I was thinking it might be better to create one timer equal to the smallest interval in the set of items, and then on each update increment a counter, and then check to see if the counter is now equal to any other intervals. This should work provided the smallest interval is a multiple of all the other intervals. Any suggestions?
Share
Boost does not use a thread per timer, it keeps a timer queue. Every timer is created with
boost::asio::io_serviceobject that does the actual work.This object can dispatch its work in one or more threads, when you run
boost::asio::io_service::run()explicitly from multiple threads, but there is no one-to-one correspondence between timers and threads, and Asio will not create threads behind your back.