testnextprog.go 576 字节
Newer Older
1 2 3 4
package main

import (
	"fmt"
5
	"runtime"
6 7 8 9
	"time"
)

func sleepytime() {
10
	time.Sleep(5 * time.Millisecond)
11 12 13 14 15 16
}

func helloworld() {
	fmt.Println("Hello, World!")
}

D
Derek Parker 已提交
17
func testnext() {
18 19 20 21
	var (
		j = 1
		f = 2
	)
22

D
Derek Parker 已提交
23
	for i := 0; i <= 5; i++ {
D
Derek Parker 已提交
24
		j += j * (j ^ 3) / 100
25

D
Derek Parker 已提交
26 27 28 29
		if i == f {
			fmt.Println("foo")
			break
		}
30

31
		sleepytime()
32 33
	}

D
Derek Parker 已提交
34 35 36 37
	helloworld()
}

func main() {
38 39 40 41 42 43 44 45 46 47
	d := make(chan int)
	testnext()
	go testgoroutine(9, d)
	<-d
	fmt.Println("done")
}

// fix line
func testgoroutine(foo int, d chan int) {
	d <- foo
48
}
49 50 51 52 53

func init() {
	runtime.LockOSThread()
	runtime.GOMAXPROCS(4)
}