Sobes.tech
Back to questions
Junior — Middle
94

Можете объяснить концепцию псевдопараллельных процессов в программировании?

Answer from AI

sobes.tech AI

Псевдопараллельные процессы — это способ выполнения нескольких задач, которые выглядят как одновременно работающие, но на самом процессоре они выполняются поочерёдно. В программировании это достигается с помощью планировщика задач, который быстро переключается между процессами или потоками, создавая иллюзию параллельности.

В Go это реализуется через горутины — лёгкие потоки, которые планировщик Go запускает на одном или нескольких системных потоках. Горутины могут выполняться псевдопараллельно, особенно если у вас один процессор, где задачи переключаются очень быстро.

Пример на Go:

package main

import (
    "fmt"
    "time"
)

func say(s string) {
    for i := 0; i < 5; i++ {
        time.Sleep(100 * time.Millisecond)
        fmt.Println(s)
    }
}

func main() {
    go say("Привет") // запускаем горутину
    say("Мир")       // основная горутина
}

Здесь две функции выполняются почти одновременно, но на самом деле Go переключается между ними быстро, создавая эффект псевдопараллельности.