站长网 经验 EasyDSS采用Golang指针问题导致平台重复推流的优化方式

EasyDSS采用Golang指针问题导致平台重复推流的优化方式

我们的团队在研发视频流媒体平台的时候,用到最多的就是Go语言。之前也和大家交流过关于Go语言的指针问题和应用,大家有兴趣可以了解一下:视频流媒体平台编译中如何运用Go语言指针?在对EasyDSS的编译中,我们发现Golang指针问题会导致系统内的重复推流。G

我们的团队在研发视频流媒体平台的时候,用到最多的就是Go语言。之前也和大家交流过关于Go语言的指针问题和应用,大家有兴趣可以了解一下:视频流媒体平台编译中如何运用Go语言指针?

 

在对EasyDSS的编译中,我们发现Golang指针问题会导致系统内的重复推流。Golang遍历切片代码如下:

 

 

 

在for循环里,最终遍历结束后VliveStart(vlive.ID,false,nil)方法中vlive会指向最后一个地址,因此会出现重复推流问题。

 

针对这个问题,我们提出了两个方案:

 

1、将原始切片vlives修改为存放指针,这样在遍历时vlive实际存放的是该位置的实际指针。

 

2、用变量来赋值,再将复制后的变量地址放到协程中。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/chuangye/jingyan/2021/1103/19066.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部