These are native threads, namely, it will use platform threads, at least on Linux, Windows and Mac.
As far as I know, the thread mapping will be 1: 1 with the kernel thread on Windows, Linux, and MAC for each spawned thread.
I am not sure that for other platforms it can be implemented in other ways, but I do not know any implementation of a non-core thread using the boost.thread API.
For custom multi-task "threads", boost.coroutine can be used. There is also a new boost.fiber library, which is almost similar to boost.coroutine, but adds a thread level API (which is a fiber in library terminology) and a user level graphical scheduler.
- You can find boost.fiber here .
- Here you can find boost.coroutine here .
source share