草庐IT

Quiz_for_Unit

全部标签

c - 像 OpenMP 这样的 golang 中有一个简单的 `parallel for` 吗?

我正在尝试使用并行处理优化拼图,以获得更好的性能。理想情况下,在带有OpenMP的C99中,我应该能够在有问题的for循环之前借助#pragmaompparallelfor来做到这一点,然后应该由系统在CPU之间分配负载。Go的官方文档位于https://golang.org/doc/effective_go.html#parallel,但是,似乎表明对于并行处理,我必须,(0),手动从运行时环境中获取内核数量,(1),遍历所述内核,(2),有效地为每个内核编写一个不同的for循环核心,(3),再次遍历核心以确保所有内容都得到处理。我错过了什么吗?对于最简单的情况,使用古老C的Open

使用 for 循环和匿名函数进行并发时出现意外行为

我已经找到了一种让代码按照我想要的方式运行的方法,但我想了解为什么它会这样运行,以便我对Go并发的理解有所提高。我正在测试sync.WaitGroup以等待一些goroutine完成,因为我计划以这种方式向AmazonS3进行多次上传。这是我最初的代码:funcmain(){varwgsync.WaitGroupfori:=1;i我惊讶地看到输出是:6,6,6,6,6。而不是像这样的:2,4,1,5,3。由于循环甚至没有转到6,这对我来说毫无意义。我后来将i变量作为参数传递给匿名函数然后它的行为符合我的预期。为什么会这样?我不明白。 最佳答案

unit-testing - 使用 Gorilla MUX 对 App Engine 进行单元测试

我想为GoogleAppEngine中的处理程序编写测试,这些处理程序使用Gorillamux从请求URL读取变量。我从documentation了解到您可以创建一个虚假的上下文并请求用于测试。我在测试中直接调用处理程序,但处理程序没有按预期看到路径参数。funcTestRouter(t*testing.T){inst,_:=aetest.NewInstance(nil)//ignoringerrorforbrevitydeferinst.Close()//triedaddingthislinebecausethetestwouldnotworkwithorwithoutithttpt

github - Docker : Could not resolve host: github. com - for go get ./

运行Dockerfile时,我需要获取依赖项。这是使用goget./...完成的。然而,当执行dockerbuild-ttest.时,它会在goget命令处挂起。这是错误信息execgoget-v-dgithub.com/gorilla/mux(download)cd.;gitclonehttps://github.com/gorilla/mux/go/src/github.com/gorilla/muxCloninginto'/go/src/github.com/gorilla/mux'...fatal:unabletoaccess'https://github.com/gorill

unit-testing - 在 GoLang 的 sqlmock 中出错

我正在为GoLang应用程序编写测试用例,我正在使用sqlmock模拟SQL查询,但在执行gotest时出现以下错误Params:[调用查询,不是预期的,下一个预期是:ExpectedBegin=>expectingdatabasetransactionBegin]对此有什么想法吗? 最佳答案 sqlmock期望有一个开始,但却得到了其他东西。在此处显示功能并进行测试以获取更多信息。 关于unit-testing-在GoLang的sqlmock中出错,我们在StackOverflow上找

postgresql - 戈朗 : gorm use Find(&model) for non gorm migrate table

有表customer_account(postgres)是从YII2迁移过来的。数据链接:CREATETABLEpublic.test_table(idINTEGERPRIMARYKEYNOTNULLDEFAULTnextval('test_table_id_seq'::regclass),dataJSONB);在go项目中,我尝试从该表中获取值。typeTableGostruct{IdintDatastring`gorm:"type:jsonb"`}table:=TableGo{}db.Where("id=?",75).Find(&table)println(table.Data)但

go - 步数未知的并行for循环

我正在学习围棋。我有一个带有递归步骤的for循环,直到在未知数量的项目中找到几件东西(未知数量)。我想使用gofunc()能够加快搜索速度。我正在使用chan和chan来监督worker。但是我不知道如何等待工作完成并能够使用找到的项目。谢谢! 最佳答案 关于sync.WaitGroup的另一个答案是正确的,是此处使用的工具。for循环恕我直言放错了地方,我认为您将同时处理循环中的项目;像这样:funcmain(){wg:=&sync.WaitGroup{}foritem:=rangesourceOfUnknownQuantity{

json - Golang : Protobuff generated Struct is not decoding child attribute for json. 解码

我有一个结构体正在与protobuff序列化器一起使用并且运行良好。这个结构是由protobuff生成的,因此它有很多方法,比如Unmarshal等。typeFlightstruct{FlightNostring`json:"flightno,omitempty"`Carrierstring`json:"carrier,omitempty"`}func(m*Flight)Unmarshal(data[]byte)error{l:=len(data)iNdEx:=0foriNdEx=64{returnErrIntOverflowFlight}ifiNdEx>=l{returnio.Err

unit-testing - 在 go api 调用中测试

我想为我的api编写测试用例,例如:数据库查询失败、代码错误、响应错误等。所以我在Controller文件夹中创建了一个名为controller_test.go的文件。这是我的代码:packagecontrollersimport("net/http""testing""net/http/httptest")func(imcImessageSoundController)TestHealthCheckHandler(t*testing.T){req,err:=http.NewRequest("GET","sound/imessage_sound",nil)iferr!=nil{t.Fa

http - 多线程Go for HTTP get

我在一个API中使用Go来获取我所在城市的公交车频率,但是当我尝试使HTTPGet访问许多URL时,我有点卡在了线程上。如果没有并发,程序需要超过16分钟才能完成1500个url调用以获取HTTP状态代码,我试图使用并发,但在阅读了很多帖子后我不明白goroutines是如何工作的......想法是制作一个函数并更改请求的数量,如下所示:gogetBusPostStatus(600,800)但我完全坚持...代码如下:packagemainimport("fmt""net/http""strconv""time")variint=0varconvStrstringvarmessage=