Junior — Middle
Оё имкон дорад, ки коркарди параллелии пурра дар забони Go амалӣ карда шавад?
sobes.tech AI
Ҷавоб аз AI
Бале, дар забони барномасозии Go имконпазир аст, ки коркарди параллелии пурра барои вазифаҳо амалӣ карда шавад. Go дастгирии дарунсохт барои рақобатро тавассути goroutineҳо пешниҳод мекунад, ки инҳо рагҳои сабук мебошанд, ки аз ҷониби муҳити иҷрои Go идора карда мешаванд.
Goroutineҳо имкон медиҳанд, ки функсияҳо параллелӣ иҷро шаванд, ва каналҳо (channels) мубодилаи бехатари маълумотро байни онҳо таъмин мекунанд.
Маслиҳати коркарди параллелӣ:
package main
import (
"fmt"
"time"
)
func worker(id int, jobs <-chan int, results chan<- int) {
for j := range jobs {
fmt.Printf("Корманди %d коркарди вазифаи %d\n", id, j)
time.Sleep(time.Second) // имитацияи кор
results <- j * 2
}
}
func main() {
jobs := make(chan int, 5)
results := make(chan int, 5)
for w := 1; w <= 3; w++ {
go worker(w, jobs, results)
}
for j := 1; j <= 5; j++ {
jobs <- j
}
close(jobs)
for a := 1; a <= 5; a++ {
fmt.Println("Натиҷа:", <-results)
}
}
Ба ин васила, Go имкон медиҳад, ки коркарди параллелиро бо кӯмакҳои камтар ба самаранокӣ амалӣ кард.