首先没有操作主要功能

时间:2017-09-19 05:37:55

标签: go main process.start

package main
import (
    "bytes"
    "encoding/json"
    "io/ioutil"
    "log"
    "net/http"
    "os"
    "os/signal"
    "strings"
    "unicode/utf8"
    "sync"
    "github.com/robfig/cron"
     cpu "github.com/shirou/gopsutil/cpu"
    "fmt"
)

const NumofResource = 4

// 구조체
type HostInfo struct {
    Hostid string
}

var c *cron.Cron
var lastCPUTimes []cpu.TimesStat

func main() {
    fmt.Println("1.main.go > main() start")
    defer l4g.Close()

var err interface{}
lastCPUTimes, err = cpu.Times(false) //nil
fmt.Println("2.main.go > err", err)
fmt.Println("3.main.go > lastCPUTimes", lastCPUTimes)

if err != nil {
    l4g.Error(err)
}
}

我知道首先执行主要功能。 但是,我们确认首先执行名为cpu_windows.go的库。 为什么呢?

  

cpu_windows.go:Times(bool)false

     

cpu_windows.go:common.ProcGetSystemTimes.Call 1

     

cpu_windows.go:Times(bool)true

     

cpu_windows.go:返回perCPUTimes()

     

1.main.go:main() start

     

cpu_windows.go:Times(bool)false

     

cpu_windows.go:common.ProcGetSystemTimes.Call 1

     

2.main.go:err

1 个答案:

答案 0 :(得分:2)

specification says

  

如果包具有导入,则在初始化包本身之前初始化导入的包。

  

程序执行从初始化主包然后调用main函数开始。

以下是导入的cpu包中的initialization codemain中的任何代码之前执行。