请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

VideoClearExcutor的实现是否会出现并发问题?

里面用go routine来执行删除动作,动作结束后才会把err写到errMap中。但是启动启动go routine后外面的程序已经直接往下执行了,都最后读取errMap的时候之前启动的那些go routine可能没有执行完,这样就拿不到所有的err?

正在回答 回答被采纳积分+3

1回答

艾文西 2018-10-11 15:17:00

不会,那个函数里面有这样一行

    forloop:
        for {
            select {
            case vid :=<- dc:
                log.Printf("Data in executor: %v", vid)

for是个阻塞的死循环,只有在下面break之后才会跳出,因此整个函数会被block住直到跳出,不存在goroutine延迟结束导致的race condition

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号