-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating

D Web Development
By :

The key to the scalability of vibe.d is the use of asynchronous I/O in combination with fibers.
Modern operating systems implement preemptive multitasking. A thread runs until its time slice is exhausted or it must wait for an I/O operation. Then the kernel chooses a different thread to run. Ultimately, the scheduler in the kernel controls the threads.
In contrast, fibers are a form of cooperative multitasking. As the name implies, cooperative multitasking requires some help from the user functions. A function runs up to a point where the developer decides would be a good place to run another task. Usually, a library function named yield()
is called, which continues the execution of another function. This is best shown with an example. Here is a simplified version of the classic producer-consumer pattern:
import std.stdio; import std.math; import core.thread; private int goods; private bool exit; void producerFiber() { foreach (i; 0..3) ...
Change the font size
Change margin width
Change background colour