课程
/后端开发
/Go
/搭建并行处理管道,感受GO语言魅力
老师,有个疑问,用同一个file去接os.Create和os.Open,最后会不会只closed掉第二个,而实际上第一个*File没有被close掉?
2018-08-20
源自:搭建并行处理管道,感受GO语言魅力 3-4
正在回答
defer的效果是从最后向前依次执行需要defer的语句,也就说需要defer操作的引用都会被存储在一个栈空间。
在栈空间里file指向的地址还是不同的地址,因此可以解决这个问题。
猜测是这样,并没有实际证据。
举报
通过搭建并行数据处理管道,展示go语言在并发编程方面的优势
1 回答会不会存在只生成部分数据, 然后就被拿走的情况呢?
7 回答老师,请问,为什么不能循环一次,open一次,读完数据并存储,close一次,再循环?我实验过,确实失败了
1 回答老师请问这个 in1 和 in2 会不会阻塞读取
1 回答merge 时只有一个输入ready了,有没问题
1 回答使用bufio.NewWrite封装了一下file,为什么生成的文件里面没有内容啊,不封装的时候就会有输出