Back to questions
МВидео
Middle+
3
Сколько у одной программы может быть запущено процессов или потоков?
Companies where asked
Answer from AI
sobes.tech AI
В одной программе количество одновременно запущенных процессов и потоков не ограничено жестко самим языком или ОС, а зависит от ресурсов системы (оперативной памяти, процессорного времени) и ограничений ОС.
В контексте Go:
- Процессы — это отдельные экземпляры программы, управляются ОС, обычно запускаются через системные вызовы.
- Потоки — в Go напрямую не создаются, вместо них используются горутины (goroutines), которые легковеснее потоков и управляются планировщиком Go.
Количество горутин может быть очень большим (тысячи и даже миллионы), ограничено только памятью и производительностью.
Пример создания горутин:
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) // запускаем 10 горутин
}
time.Sleep(2 * time.Second) // ждем завершения
}
Таким образом, в одной программе на Go может быть запущено множество горутин, а количество процессов зависит от того, сколько экземпляров программы вы запустите.