Middle+
Go kontekstida asinxronlik, parallel va raqobat nima?
sobes.tech AI
AIdan javob
Go kontekstida:
-
Asinxronlik — asosiy oqimni bloklamasdan operatsiyalarni bajarish, odatda gorutinlar va kanallar orqali. Bu mustaqil ravishda bajarilishi mumkin bo'lgan vazifalarni boshlash va ularning yakunlanishini kutmaslik imkonini beradi.
-
Parallellik — bir nechta vazifalarni protsessorning turli yadrolarida bir vaqtning o'zida bajarish. Go'da bu gorutinlar planlashtiruvchisi yordamida amalga oshiriladi, ularni tizim iplariga taqsimlaydi.
-
Raqobat — bir dastur bir vaqtning o'zida yoki ketma-ket bajarilishi mumkin bo'lgan bir nechta vazifalarni boshqarish qobiliyati, umumiy resurslarga to'g'ri kirishni ta'minlab.
Goroutine misoli:
func worker(id int) {
fmt.Printf("Ishchi %d boshladi\n", id)
// ish
}
func main() {
for i := 1; i <= 5; i++ {
go worker(i) // asinxron boshlash
}
time.Sleep(time.Second) // yakunlashni kutish
}