首页 > go内存被自动释放掉了?

go内存被自动释放掉了?

按着教程上面写例子:
https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/06.3.md

package main

import (
    "fmt"
    "log"
    "net/http"
    "zlaravel"
    _ "zlaravel/session"
)

const (
    ROOT_DIR = "../"
)

func login(res http.ResponseWriter, req *http.Request) {

    fmt.Fprintf(res, "sei")
    fmt.Printf("%#v\n", globalSessions)//输出2
    return

    session := globalSessions.SessionStart(res, req)
    if value := req.FormValue("session"); value != "" {
        session.Set("sei", "fuck")
    }
    name := session.Get("sei").(string)
    fmt.Fprintf(res, name)
}

var globalSessions *zlaravel.Manage

func main() {
    http.HandleFunc("/", login)
    err := http.ListenAndServe(":8000", http.DefaultServeMux)
    if err != nil {
        log.Fatalln("error http.ListenAndServe create:", err)
    }
    fmt.Println("exit main process")//此处并没有运行到,应该是主线程没有退出
}

func init() {
    globalSessions, _ := zlaravel.NewManage(zlaravel.ProviderTypeMemcache, "phpsessionid", 60)
    fmt.Printf("%#v\n", globalSessions)//输出1.
    go globalSessions.GC()
}

输出内容为:

1.    &zlaravel.Manage{cookieName:"phpsessionid", provide:(*session.Provider)(0x8090b0), maxLifeTime:60, lock:sync.Mutex{state:0, sema:0x0}}
2.    (*zlaravel.Manage)(nil)

现在输出1,应该是正常.但是到了输出2就出问题了.内存被释放了?
而且主线程没有退出阿?
目前平台是:windows_amd64
请高手帮我解决一下.


原来是我写错了.
globalSessions, _ := zlaravel.NewManage(zlaravel.ProviderTypeMemcache, "phpsessionid", 60)
多了一个":"号,变成局部变量了

【热门文章】
【热门文章】