コード例 #1
0
ファイル: 2a.go プロジェクト: ariefdarmawan/concurrency
func GetFibo(i int) fibo.F {
	f := fibo.F{}
	f.Seed = i
	f.Calc()
	time.Sleep(100 * time.Millisecond)
	return f
}
コード例 #2
0
ファイル: 1.go プロジェクト: ariefdarmawan/concurrency
func main() {
	iteration := 100
	fmt.Println("T1 - Go Routine")

	tstart := time.Now()
	for i := 0; i < iteration; i++ {
		go func() {
			f := fibo.F{}
			f.Seed = i
			f.Calc()
			fmt.Printf("Fibo of %d is %d \n", f.Seed, f.Result)
			time.Sleep(100 * time.Millisecond)
		}()
	}

	fmt.Printf("Done. Completed in %v \n", time.Since(tstart))
}
コード例 #3
0
ファイル: 3.go プロジェクト: ariefdarmawan/concurrency
func main() {
	iteration := 100
	fmt.Println("T3 - WaitGroup")

	tstart := time.Now()
	wg := new(sync.WaitGroup)
	for i := 0; i < iteration; i++ {
		wg.Add(1)
		go func(i int, wg *sync.WaitGroup) {
			f := fibo.F{}
			f.Seed = i
			f.Calc()
			fmt.Printf("Fibo of %d is %d \n", f.Seed, f.Result)
			time.Sleep(100 * time.Millisecond)
			wg.Done()
		}(i, wg)
	}
	wg.Wait()

	fmt.Printf("Done. Completed in %v \n", time.Since(tstart))
}