Go курс Плюс - с нуля. Конкурентность. 14 часть

preview_player
Показать описание


package main

import (
"fmt"
"time"
)

func f(gonum int) {
for i := 0; i ᐸ 10; i++ {
fmt.Println("Goroutine No:",gonum, ":", i)
time.Sleep(time.Millisecond * 1)
}
}
func main() {
for i := 0; i ᐸ 10; i++ {
go f(i)
}
var input string
fmt.Scanln(&input)
}
==========endfile=============

package main
import "fmt"
var c chan int = make(chan int, 2)
func main() {
/* можно закрыть канал, через закрытый канал невозможно передать или принять данные
Горутина может проверить закрыт канал или нет:
val, ok := ᐸ- channel, где ok будет истиной если канал открыт */
go assign(123)
go assign(456)
go assign(0)
go reading()
fmt.Scanln()
}
func assign(val int) {
c ᐸ- val
c ᐸ- val+1
}
func reading() {
for {
v, ok := ᐸ-c
fmt.Println("Chan valid:",ok)
fmt.Println("Chan value:",v)
}
}
=========endfile===============

package main

import (
"fmt"
"sync"
"time"
)

var wg sync.WaitGroup

func main() {
wg.Add(2)
go work(1)
go work(2)
wg.Wait()
fmt.Println("All goroutines finish!!!")
}

func work(id int) {
defer wg.Done()
fmt.Println("Goroutine", id, "start")
time.Sleep(2 * time.Second)
fmt.Println("Goroutine", id, "done!")
}
===========endfile=================
Рекомендации по теме
Комментарии
Автор

Привет, советуешь ли изучать Го как первый ЯП, и реально ли найти работу джуном?

Yhwach-mvcu