is Boost ASIO doing work scheduling for you, so like you launch those OS threads and hand over its operation all to Boost,
and then Boost will dispatch all the std:bind - bound handlers, which work as your job units, on any OS thread presentyl is doing nothing?