【问题标题】:Can I have function ID for each function being called and communicate with it?我可以为每个被调用的函数设置函数 ID 并与之通信吗?
【发布时间】:2014-08-04 16:29:44
【问题描述】:

我将调用一个函数来使用go functionABC() 建立一个 BOSH 连接。

在函数中,我会通过发送ping信息来保持连接状态。所以,可能会有很多functionABC() 电话。那么现在,如果我想从函数中获取一些信息,我可以通过函数 ID 或进程 ID 来识别函数吗? Go 是否有函数 ID 或进程 ID 来识别函数?

如果是这样,我该如何与此功能进行通信?如果没有,是否有任何替代方法来完成它?

【问题讨论】:

    标签: function go pid


    【解决方案1】:

    也许使用map 并从您的函数返回一个唯一的ID/连接并将其分配给地图,例如this:

    var counter uint64
    
    func ReturnStuff() (uint64, net.Conn) {
        return atomic.AddUint64(&counter, 1), nil
    }
    
    var m = map[uint64]net.Conn{}
    
    func main() {
        for i := 0; i < 10; i++ {
            id, conn := ReturnStuff()
            m[id] = conn
        }
        fmt.Printf("%+v", m)
    }
    

    【讨论】:

    • 感谢 OneOfOne。它对我有很大帮助。我得到的额外问题是在 ReturnStuff() 函数中,它将有一个循环不断更新 conn。那么如何在需要的时候随时获取最新的 conn 呢?
    • 您需要使用频道,您应该使用tour.golang.org 来熟悉该语言。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多