]>
Commit | Line | Data |
---|---|---|
b32b8144 FG |
1 | boost.fiber\r |
2 | ===========\r | |
3 | \r | |
4 | boost.fiber provides a framework for micro-/userland-threads (fibers) scheduled cooperatively.\r | |
5 | The API contains classes and functions to manage and synchronize fibers similiar to boost.thread.\r | |
6 | \r | |
7 | A fiber is able to store the current execution state, including all registers and CPU flags, the\r | |
8 | instruction pointer, and the stack pointer and later restore this state. The idea is to have multiple\r | |
9 | execution paths running on a single thread using a sort of cooperative scheduling (threads are\r | |
10 | preemptively scheduled) - the running fiber decides explicitly when it yields to allow another fiber to\r | |
11 | run (context switching).\r | |
12 | \r | |
13 | A context switch between threads costs usally thousands of CPU cycles on x86 compared to a fiber switch\r | |
14 | with less than 100 cycles. A fiber can only run on a single thread at any point in time.\r | |
15 | \r | |
16 | boost.fiber requires C++11!\r |