我在用golang做一个股票数据存储的一个demo,用socket读取字节数据,然后就进行拆包解析,当利用goroutine惊喜数据分发处理时,字节数据会解析出乱码,而同步就不会,这让我很困扰,我觉得应该是应该和并发数据安全性有关系,然后又利用channel通道来传递数据发现效果还是一样
,代码如下
主函数 socket和redis连接
![微信截图_20180817140256.png](https://static.studygolang.com/180817/856be047966f6c8b6438451272d5b368.png)
数据接收函数
![微信截图_20180817161016.png](https://static.studygolang.com/180817/8f5407b3476bfb406c2cf508bb950d4f.png)
数据分发并解析函数
![微信截图_20180817161031.png](https://static.studygolang.com/180817/0e37191ab4e966d110bb970c2f25f206.png)
我这样处理是不是缺少应用了默写golang的机制呢?有没有什么解决办法?
最后说一句,golang的处理速度真的快,同步处理都比之前用.net异步处理还要快的多
代码在这里 https://github.com/liusiming0001/stocksocket
<a href="/user/liusiming_vue" title="@liusiming_vue">@liusiming_vue</a> 但你乱码这个问题 估计只能用阻塞来处理.否则由于并发没有阻塞就会乱码.因为我刚好看到这方面的教程.当然可能有更好的方法,可以尝试加群那里问一下.群里面都很活跃
#6
更多评论
正确的数据不会有乱码
![微信截图_20180817162052.png](https://static.studygolang.com/180817/15e45621587566fa699b04ec367d7899.png)
错误的数据,有乱码,可能字节数组已经被覆盖
![微信截图_20180817162037.png](https://static.studygolang.com/180817/4a9b8c1ec0941cc664700f853f8f779f.png)
#1