Sobes.tech
Middle+

Koliko procesa ili niti može imati jedna program?

sobes.tech АИ

Одговор од АИ

У једном програму број процеса и тока који се истовремено извршавају није строго ограничен језиком или оперативним системом, већ зависи од ресурса система (RAM, процесорно време) и ограничења ОС.

У контексту Go:

  • Процеси су одвојене инстанце програма, управљају их ОС, обично се покрећу преко системских позива.
  • У Go-у, токови се не креирају директно, уместо тога се користе горутинес, који су лакши од токова и управља их планер Go.

Број горутинас може бити веома велики (хиљаде или чак милиони), ограничен само меморијом и перформансама.

Пример креирања горутинас:

package main

import (
    "fmt"
    "time"
)

func worker(id int) {
    fmt.Printf("Радник %d почео\n", id)
    time.Sleep(time.Second)
    fmt.Printf("Радник %d завршио\n", id)
}

func main() {
    for i := 0; i < 10; i++ {
        go worker(i) // покреће 10 горутин
    }
    time.Sleep(2 * time.Second) // чека завршетак
}

На овај начин, у Go програму може бити покренуто много горутин, а број процеса зависи од тога колико инстанци програма покрећете.