20210614关于net.Conn的read与write - ziyouzy/2021blog GitHub Wiki
无论read端还是write端,初始化顺序都是从数据源头到数据末头
同时他们两者是没有任何关系的,思路意识上需做到绝对的分离(解耦)
总之这些总结在做flutter前端时也会很受用
不过在这里(这种情况之下)read和write的初始化先后顺序很重要吗?
这个问题需要这么看,当在进行整体析构时,最重要的步骤是退出read.loop
或者说,这个问题的本质是通过listener拿到任何一个net.Conn实体后
read.loop与writer.sender(即p.Sends)的make的先后顺序
想到这里似乎可以得出结论了,他们并没有什么必须遵循的先后顺序原则
其实“根本不存在writer”,他只是个一过性函数,不存在所谓的“状态保持”
但是最起码他需要先“存在”才“能用”
因此他需要同时确保p.Sends与net.Conn二者的有效性 同时也要确保p.Sends与net.Conn二者在“无效”的时候禁止被使用,否则就会出现等同于“send to close chan,或者是double close chan,再或者double done wg”这样的会造成panic的错误