Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.91 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5.     "sync"
  6. )
  7.  
  8. func main() {
  9.     wg := sync.WaitGroup{} // Эта штука нужна для синхронизации, а то основной поток программы (main) закончится раньше, чем "побочные" горутины и они ничего не успеют напечатать.
  10.     for i := 0; i <= 10; i++ {
  11.         wg.Add(1) // Счётчик горутин + 1
  12.         go func(i int) { // Обрати внимание, я передал i как агрумент - это потому что иначе все горутины бы обращались к одному и тому же адресу (через замыкание).
  13.             for j := 0; j <= 10; j++ {
  14.                 fmt.Printf("%d-%d\n", i, j)
  15.             }
  16.             wg.Done() // Счётчик горутин - 1
  17.         }(i)
  18.     }
  19.     wg.Wait() // Ждём, пока счётчик горутин станет равен 0
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement