跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • golang 在 routine 中执行阻塞任务可以实现吗?
未分類
29 8 月 2020

golang 在 routine 中执行阻塞任务可以实现吗?

golang 在 routine 中执行阻塞任务可以实现吗?

資深大佬 : Latin 7

golang 新手请教下在协程中执行死循环任务并调度是否可以实现,没找到太多相关样例
大佬有話說 (14)

  • 資深大佬 : ZSeptember

    什么意思,for{ // XXX} 不行吗。

  • 資深大佬 : dongisking

    https://studygolang.com/articles/12992?fr=sidebar

  • 主 資深大佬 : Latin

    @ZSeptember
    解码服务要一直执行,
    相当于一个协程一路解码,
    肯定会阻塞协程,
    刚刚试了几个实现都没成功

  • 資深大佬 : ZSeptember

    可以多点上下文吧。再什么场景下,要做什么,达成什么样的效果。

  • 資深大佬 : lbp0200

    sync.waitgroup

  • 資深大佬 : chensan

    不太理解主是要什么效果,但是 context 和上的 waitgroup 你可以了解下

  • 主 資深大佬 : Latin

    前者可以实现轮询调度
    https://paste.ubuntu.com/p/thsKMhWC2x/
    后者 gocv 不支持
    https://paste.ubuntu.com/p/3F3wvYqGDM/
    @ZSeptember @lbp0200 @chensan

  • 資深大佬 : mengzhuo

    这样?

    ch := make(chan, int)

    go func() {

    for i:=0;i<10;i++{
    ch<-i
    time.Sleep(i*500*time.Millisecond)
    }

    }()

    for {
    fmt.Print(<-ch)
    }

  • 主 資深大佬 : Latin

    @mengzhuo 好的 我试试

  • 資深大佬 : lbp0200

    @Latin 看样子是 openCV 的问题,可以写成命令行

    cap rtsp://xxx1
    cap rtsp://xxx2
    cap rtsp://xxx3

    这样都是独立的进程,应该就没问题了

  • 資深大佬 : ZSeptember

    defer wg.Done() 加到第七行前面,wg.Done 应该要在 goroutine 结束后执行吧。

  • 主 資深大佬 : Latin

    @lbp0200 gocv 线程不安全 这个方法我觉得可以放弃了
    @ZSeptember 阻塞可以直接放弃 Done 了吧

  • 資深大佬 : ZSeptember

    打个日志看看你真实代码传入的 url 列表?感觉运行的时候是个空列表?

  • 資深大佬 : lbp0200

    @Latin gocv 有示例代码,复制粘贴就好了

    多视频源,就需要启动多个进程

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具