草庐IT

锁的策略

全部标签

performance - 是否可以为 Go 使用不同的垃圾收集策略?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion正如标题所说,不知道是否可以更改Go使用的GC策略?

go - 在 golang 中创建一个 POST 策略并为基于浏览器的上传到 Amazon S3 签名

我正在尝试从我的客户端(AngularJS)实现基于浏览器的上传到亚马逊S3,经过一些研究我开始知道我必须创建一个策略并签署S3的POST请求。引用http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html,我试过http://play.golang.org/p/3zn5fSDasKpackagemainimport"fmt"import"encoding/base64"funcmain(){bytePolicy:=[]byte(`{"expiration":"2013-08-06T12:00:00.00

go - 从带有锁的 map 中读取不会通过 channel 返回值

我尝试在golang中实现一个从map读取/写入的锁定版本,但它没有返回所需的结果。主要包import("sync""fmt")varm=map[int]string{}varlock=sync.RWMutex{}funcStoreUrl(idint,urlstring){for{lock.Lock()deferlock.Unlock()m[id]=url}}funcLoadUrl(idint,chchanstring){for{lock.RLock()deferlock.RUnlock()r:=m[id]ch输出是:Result:意思是这个值不是通过channel返回的,我没有得到。

go - 将重试策略变成可重用的函数

我们的项目有一个简单的重试策略:在第一个错误上,sleep1秒。在第二次错误时,休眠5秒。第三个错误时,休眠10秒。在第四次错误时,退出重试并返回错误。这是我们的重试政策:packagemainimport("errors""fmt""time")funcmain(){errorCount:=0varerrerrorfmt.Println("start!")for{err=generateError()iferr!=nil{iferrorCount==0{fmt.Println("sleepingfor1second...")time.Sleep(1*time.Second)}else

unit-testing - Go 应用程序在测试包含锁的函数时挂起

这是我编写的一个函数,用于将请求添加到请求队列:func(self*RequestQueue)addRequest(request*Request){self.requestLock.Lock()self.queue[request.NormalizedUrl()]=request.ResponseChannelself.requestLock.Unlock()}这是它的测试之一:funcTestAddRequest(t*testing.T){before:=len(rq.queue)r:=SampleRequests(1)[0]rq.addRequest(&r)if(len(rq.q

windows - 替换 Windows 中可执行程序的策略

我有一个Windows程序需要从服务器自动更新。它已经能够从服务器传输文件并在加载它们之前更新和验证诸如DLL插件文件之类的东西。但是,这个程序也需要self更新。可能有几种不同的方法可以做到这一点,我从各种在线游戏客户端看到的最明显的方法是创建一个“自动修补程序”,它下载并运行客户端可执行文件。这引入了必须更新自动修补程序的问题,因此如果有更优雅的解决方案,我想听听。我不得不想象有一种方法可以将新的可执行文件下载为临时文件,比方说“client.exe.tmp”,然后启动一个单独的进程等待原始client.exe退出然后在其顶部重命名/复制新文件。有没有人成功地做过这种事情,你用什么

unit-testing - 数据库连接get的单元测试策略

被测代码中有一个方法,它只是尝试获取数据库连接,如果无法连接则返回错误。它,以及涉及的结构体定义如下:typeDatabaseContextstruct{ContextDatabaseDatabaseSt}////GetInfoReturnsthecontext.//func(c*DatabaseContext)GetInfo()*Context{//return&c.Context//}//GetDBGetsthedatabaseconnectionfromtheconnectionstring.func(c*DatabaseContext)GetDB()(*sql.DB,*erro

go - 在没有锁的情况下并发读取函数指针是否安全?

假设我有这个:gofunc(){forrangetime.Tick(1*time.Millisecond){a,b=b,a}}()其他地方:i:=a//对于这个问题,i相对于原始a或b的值是什么并不重要。唯一的问题是阅读a是否安全。也就是说,a是否有可能为nil、部分分配、无效、未定义……除有效值之外的任何值?I'vetriedtomakeitfail但到目前为止它总是成功(在我的Mac上)。我无法在TheGoMemoryModel中找到除此引用之外的任何具体信息文档:Readsandwritesofvalueslargerthanasinglemachinewordbehaveasm

google-app-engine - Go 中的数据存储区读取策略设置

在GoogleAppEngine中,我尝试使用Go设置Datastore读取策略。Python使用read_policy=db.EVENTUAL_CONSISTENCY具有此功能,但似乎没有Go等效项。您可以看到Go文档中缺少此部分。https://developers.google.com/appengine/docs/python/datastore/queries#Python_Data_consistencyhttps://developers.google.com/appengine/docs/go/datastore/queries#Go_Data_consistency有

go - hydra - 使用 curl 创建策略失败,范围无效

我已成功配置ory/hydraOAUTH服务器,它似乎运行良好。但是,我正在尝试使用“curl”而不是提供的CLI创建策略,但遇到错误:{"error":{"code":500,"message":"Avalidatorreturnedanerror:Therequestedscopeisinvalid,unknown,ormalformed"}}不幸的是,该错误不够详细,无法确定根本原因。这是我通过curl发出的请求:curl-k-XPOST-HAuthorization:beareraValidBearerToken\-d{"id":"policy-001","descriptio