package main
import (
"fmt"
//"runtime"
)
func say(s string) {
for i := 0; i < 5; i++ {
//runtime.Gosched()
fmt.Println(s)
}
}
func main() {
go say("world") // create a new goroutine
say("hello") // current goroutine
}
Почему результат:идут языки, зачем рутинную функцию никогда не называют
привет привет привет привет привет
Почему нет «мир» был
Ответ : (отредактировано) Если я это сделаю, это хорошо сейчас:
package main
import (
"fmt"
"runtime"
)
func say(s string) {
for i := 0; i < 5; i++ {
//runtime.Gosched()
fmt.Println(s)
}
}
func main() {
go say("world") // create a new goroutine
runtime.Gosched()
say("hello") // current goroutine
}
Использование 'GoSched' не гарантирует, что другой goroutine будет запущен до завершения. Обычно вы не должны использовать это в своем коде. – JimB
Этот вопрос является дубликатом http://stackoverflow.com/questions/15771232/why-is-time-sleep-required-to-run-certain-goroutines/15771560 и http://stackoverflow.com/questions/24425987/почему-это-не-исполняемых мой-goroutine/24426137 – snap