天天看點

我的第一個Golang程式

本程式參考:GO語言實戰 GO IN ACTION
package main

import (
   "fmt"
   "runtime"
   "sync"
)

func   main(){
   //配置設定一個邏輯處理器給排程器使用
   runtime.GOMAXPROCS(1)

   //wg來等待程式完成
   //計數加2,表示要等待兩個goroutine
   var wg sync.WaitGroup
   wg.Add(2)



   fmt.Println("Start Goroutines")

   //聲明一個匿名函數,并建立一個goroutine
   go func() {

      //在函數退出時調用DOne來通知main函數工作已經完成
      defer wg.Done()

      //顯示字母表三次
      for count:=0;count<3;count++{
         for char :='a';char <'a'+26;char ++{
            fmt.Printf("%c",char)
         }
      }
   }()

   //聲明一個匿名函數,并建立一個goroutine
   go func() {

      //在函數退出時調用DOne來通知main函數工作已經完成
      defer wg.Done()

      //顯示字母表三次
      for count:=0;count<3;count++{
         for char :='A';char <'A'+26;char ++{
            fmt.Printf("%c",char)
         }
      }
   }()

   //等待goroutine結束
   fmt.Println("waiting to finish")
   wg.Wait()

   fmt.Println("\nTerminating Program")

}


/*
runtime.GOMAXPROCS 去設定CPU,Golang 預設使用所有的cpu核
*/      

運作結果:

我的第一個Golang程式

修改:

runtime.GOMAXPROCS(2)  備注:電腦為雙核處理器
      
我的第一個Golang程式

當程式删除 

wg.Wait()後,運作結果      
我的第一個Golang程式