time.Location
是否可以安全地同时访问time.LoadLocation("...")
?
我问这个是因为我看到它确实考虑了夏令时的计算(它是否访问从数据zip文件加载的地图?它是否实时计算?我们是否需要锁定它?或者重新加载很快足以每次都这样做吗?)。
答案 0 :(得分:0)
Location
上唯一公开的方法是String
。 Location
本身的定义没有导出字段:
type Location struct {
// contains filtered or unexported fields
}
因此,一旦创建,它应该在其余生中保持不可修改。因此它应该是安全的并发访问。
对于LoadLocation
,它确实从文件中读取。因此,您可以使用互斥锁保护每次调用LoadLocation
。
LoadLocation所需的时区数据库可能不存在 所有系统,尤其是非Unix系统。 LoadLocation查找 由ZONEINFO环境命名的目录或未压缩的zip文件 变量(如果有的话)然后查看Unix上的已知安装位置 系统,最后查看$ GOROOT / lib / time / zoneinfo.zip。