Sobes.tech
Middle+

How many processes or threads can be launched by a single program?

sobes.tech AI

Answer from AI

In a program, the number of simultaneously running processes and threads is not strictly limited by the language itself or the OS, but depends on system resources (RAM, CPU time) and OS restrictions.

In the context of Go:

  • Processes are separate instances of a program, managed by the OS, usually started through system calls.
  • Threads are not created directly in Go; instead, goroutines are used, which are lighter than threads and managed by the Go scheduler.

The number of goroutines can be very large (thousands or even millions), limited only by memory and performance.

Example of creating goroutines:

package main

import (
    "fmt"
    "time"
)

func worker(id int) {
    fmt.Printf("Worker %d started\n", id)
    time.Sleep(time.Second)
    fmt.Printf("Worker %d finished\n", id)
}

func main() {
    for i := 0; i < 10; i++ {
        go worker(i) // launching 10 goroutines
    }
    time.Sleep(2 * time.Second) // wait for completion
}

Thus, a single Go program can run many goroutines, and the number of processes depends on how many instances of the program you launch.

How many processes or threads can be launched by a… - sobes.tech