package main import ( "fmt" "sync") var wg sync.WaitGroup funchi() { fmt.Println("hi here we go") wg.Done() //用于减少计数器 } funcmain() { wg.Add(10) //告诉需要连个Goroutine需要等待完成 for i := 0; i < 10; i++ { go hi() } wg.Wait() //等待完成 fmt.Println("Its Man!!!") }
package main import ( "fmt" "sync") const n = 1 << 16 var wg sync.WaitGroup funchi(i int) { fmt.Printf("hi here we %d \n", i*i) wg.Done() //用于减少计数器 } funcmain() { wg.Add(n) //告诉需要连个Goroutine需要等待完成 for i := 0; i < n; i++ { go hi(i) } wg.Wait() //等待完成 fmt.Println("Its Man!!!") }
funcd(j int) { for i := 1; i < 10; i++ { fmt.Println("D:", j, i*i) } } funcmain() { for i := 0; i < 10; i++ { go d(i) } runtime.Gosched() println("main") //并不一定表示主协程结束 }
package main import"fmt" funccounter(out chan<- int) { for i := 0; i < 123; i++ { out <- i } close(out) } funcsquarer(out chan<- int, in <-chanint) { for i := range in { out <- i * i } close(out) } funcprinter(in <-chanint) { for i := range in { fmt.Println(i) } } funcmain() { ch1 := make(chanint) ch2 := make(chanint) go counter(ch1) go squarer(ch2, ch1) printer(ch2) }
''' n = 26563847822899403123579768059987758748518109506340688366937229057385768563897579939399589878779201509595131302887212371556759550226965583832707699167542469352676806103999861576255689028708092007726895892953065618536676788020023461249303717579266840903337614272894749021562443472322941868357046500507962652585875038973455411548683247853955371839865042918531636085668780924020410159272977805762814306445393524647460775620243065858710021030314398928537847762167177417552351157872682037902372485985979513934517709478252552309280270916202653365726591219198063597536812483568301622917160509027075508471349507817295226801011 e = 65537 ck = 8371316287078036479056771367631991220353236851470185127168826270131149168993253524332451231708758763231051593801540258044681874144589595532078353953294719353350061853623495168005196486200144643168051115479293775329183635187974365652867387949378467702492757863040766745765841802577850659614528558282832995416523310220159445712674390202765601817050315773584214422244200409445854102170875265289152628311393710624256106528871400593480435083264403949059237446948467480548680533474642869718029551240453665446328781616706968352290100705279838871524562305806920722372815812982124238074246044446213460443693473663239594932076 '''