Fiber Fibers are threads with cooperative multitasking where cooperative means a fiber, when switching to another, has to explicitly yield its control. Threads use preemptive multitasking where there is a scheduler that decides when and how to run a thread.
With fibers, the program has control over when to switch over to a different fiber whereas threads have no option but get suspended when the scheduler deems appropriate.
Fibers seem to be a perfect replacement for threads based on things we have talked about so far but it is actually not what it looks like. The problem is fibers cannot make use of the potential of multi-core machines, making it bad at parallelism but excellent with concurrent programming. Fibers are used mostly when there is many small computation tasks.