3 ms·
but that's not really accurate. It uses system threads. Userspace threading doesn't make a transition to kernel (IIUC).
by dekhn 3y ago
but that's not really accurate. It uses system threads. Userspace threading doesn't make a transition to kernel (IIUC).
- pcwalton 3y agoGo doesn't need to transition to the kernel to switch threads, does it? It just saves and loads the register state in userland.
- dekhn 3y agoIIUC it can, sometimes, avoid a kernel transition when it knows it can schedule the recipient of a message, but I believe that golang creates a threadpool for running goroutines on platforms that use thread primitives. From https://github.com/golang/go/blob/c7d6c6000a84b61ac8bb2e38e855ad120914658a/src/runtime/proc.go#L19 https://github.com/golang/go/blob/c7d6c6000a84b61ac8bb2e38e8... I believe "worker threads" are OS threads.