2
0
mirror of https://github.com/boostorg/context.git synced 2026-01-19 04:02:17 +00:00

Update README.md

This commit is contained in:
Oliver Kowalke
2019-02-02 12:59:32 +01:00
committed by GitHub
parent 9f8a21a623
commit b35a0dba0e

View File

@@ -8,14 +8,14 @@ instance represents a specific point in the application's execution path. This i
higher-level abstractions, like coroutines, cooperative threads (userland threads) or an equivalent to
C# keyword yield in C++.
A execution_context provides the means to suspend the current execution path and to transfer execution control,
thereby permitting another execution_context to run on the current thread. This state full transfer mechanism
enables a execution_context to suspend execution from within nested functions and, later, to resume from where it
was suspended. While the execution path represented by a execution_context only runs on a single thread, it can be
A fiber provides the means to suspend the current execution path and to transfer execution control,
thereby permitting another fiber to run on the current thread. This state full transfer mechanism
enables a fiber to suspend execution from within nested functions and, later, to resume from where it
was suspended. While the execution path represented by a fiber only runs on a single thread, it can be
migrated to another thread at any given time.
A context switch between threads requires system calls (involving the OS kernel), which can cost more than
thousand CPU cycles on x86 CPUs. By contrast, transferring control among them requires only fewer than
thousand CPU cycles on x86 CPUs. By contrast, transferring control among fibers requires only fewer than
hundred CPU cycles because it does not involve system calls as it is done within a single thread.
boost.context requires C++11!