为了账号安全,请及时绑定邮箱和手机立即绑定

搭建并行处理管道,感受GO语言魅力

难度中级
时长 2小时17分
学习人数
综合评分9.67
51人评价 查看评价
9.9 内容实用
9.5 简洁易懂
9.6 逻辑清晰

最赞回答 / 慕粉329807310
11分45秒的时候老师解释了,createPipeline只是创建了pipeline,也就是把一个文件分成了chunkCount个小快,各放上了一个channel,但是此时channel还是阻塞的,因为要等触发了ReadSource以后才这些通道才会开始不断传输。因此在CreatePipeline里面是不能file.close的,需要把这些file句柄返回出来,由外面close。老师说因为不想把这个示例搞的太复杂,所以就留下了这个坑。

最新回答 / tokumi
defer的效果是从最后向前依次执行需要defer的语句,也就说需要defer操作的引用都会被存储在一个栈空间。在栈空间里file指向的地址还是不同的地址,因此可以解决这个问题。猜测是这样,并没有实际证据。

最赞回答 / haoyun666
只有一个ready,那么第二个在读取的时候会一直被等待呀,等到能读取。如果其中一个读数据不ok,那么证明已经关闭了数据读取完了,这是就拍另一个就行了。所以没有问题。

最新回答 / 慕先生0298200
因为in只进不出,所以加<-限制,不然in就可以进出。同理返回值。不加也可以,加了代码比较严谨。

最新回答 / strondy
不同keymap风格,自动补全的shortcut key不一样。preference->keymap->Main menu->Refactor->Extract->Variable,就能看到具体是啥快捷键

最赞回答 / 晓之海绵宝宝
经过测试找到问题了,原文中用<...code...>这种写法,在 for 循环到最后, ch 没有数据时,程序死锁。

最新回答 / openset
改成这样就可以了:<...图片...>

最赞回答 / 张金富
抱歉 我好像理解了 tcp部分已经通过io接口做完了 剩下的都是一个进程里的 所以可以用channel

最赞回答 / 白聪聪
需要在你的GOPATH路径下创建个src目录,然后把项目创建在这个src目录下,就可以自动导入自定义的包了

最赞回答 / VANCY
macos先按Command+`,` 在自定义快捷(keymap)里搜索 Variable (在Refactor->Extract下面)

最新回答 / 白聪聪
需要在你的GOPATH路径下创建个src目录,然后把项目创建在这个src目录下,就可以自动导入自定义的包了

最新回答 / 老师傅还行
m代表分钟(minute)s表示秒(second)

最新回答 / dynamic_chenjie
显式类型转换:uint64,全部作为无符号整型处理
课程须知
1、了解一门编程语言,对基本算法如排序有了解
老师告诉你能学到什么?
1、go语言的历史和设计初衷 2、go语言的安装与开发环境 3、简单的go语言程序 4、了解go语言并发编程 5、实现一个并行数据处理管道

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消