美文网首页
Go语言之任务完成

Go语言之任务完成

作者: Jabir_Zhang | 来源:发表于2019-08-22 00:22 被阅读0次

仅需任意任务完成

func runTask(id int) string {
    time.Sleep(10 * time.Millisecond)
    return fmt.Sprintf("The result is from %d", id)
}

func FirstResponse() string {
    numOfRunner := 10
    ch := make(chan string, numOfRunner)
    for i := 0; i < numOfRunner; i++ {
        go func(i int) {
            ret := runTask(i)
            ch <- ret
        }(i)
    }
    return <-ch
}

func TestFirstResponse(t *testing.T) {
    t.Log("Before:", runtime.NumGoroutine())
    t.Log(FirstResponse())
    time.Sleep(time.Second * 1)
    t.Log("After:", runtime.NumGoroutine())
}

必需所有任务完成

func runTask(id int) string {
    time.Sleep(10 * time.Millisecond)
    return fmt.Sprintf("The result is from %d", id)
}

func AllResponse() string {
    numOfRunner := 10
    ch := make(chan string, numOfRunner)
    for i := 0; i < numOfRunner; i++ {
        go func(i int) {
            ret := runTask(i)
            ch <- ret
        }(i)
    }
    finalRet := ""
    for j := 0; j < numOfRunner; j++ {
        finalRet += <-ch + "\n"
    }
    return finalRet
}

func TestFirstResponse(t *testing.T) {
    t.Log("Before:", runtime.NumGoroutine())
    t.Log(AllResponse())
    time.Sleep(time.Second * 1)
    t.Log("After:", runtime.NumGoroutine())

}

也可以用waitgroup等待所有任务的完成

相关文章

  • Go语言之任务完成

    仅需任意任务完成 必需所有任务完成 也可以用waitgroup等待所有任务的完成

  • 便捷golang开发

    go语言之旅:https://tour.go-zh.org/如何使用go编程:https://go-zh.org/...

  • Go语言指针

    Go 语言中指针是很容易学习的,Go 语言中使用指针可以更简单的执行一些任务。 接下来让我们来一步步学习 Go 语...

  • 2019-02-25  只有自己才是自己的星星

    每天500字的书写任务,想完成似乎总是很艰难。不知该写些什么,有心理障碍,总怕写不好,怕言之无物,言之无味。 突然...

  • A Tour of Go - Go语言之旅

    Hello,世界 这是Go语言官方的一个简明入门教程,可以帮助我们快速入门Go语言:Go语言之旅[https://...

  • Go程序设计

    基础部分 Go基础结构的综述,完成十几个日常任务 Go程序的组成元素(声明、变量、新类型、包和文件以及作用域) 讨...

  • 扔帽子(Go培训材料编写)完成总结

    一、帽子介绍 任务名:完成go语言训练营培训教材的编写发布日期:7.26任务周期:7.28~8.20最终验收标准:...

  • Go语言之方法

    一. 方法 1.1 概述 带有接受者的函数,我们称为方法。本质上一个方法就是一个特殊类型关联的函数。go语言中就可...

  • go语言之导入

    go语言学习,看的是官方的教程,对于计算机语言,自己有一些基础,学习起来也有经验可以借鉴,看懂不难,暂时抓一些“坑...

  • Go语言之“容器”

    1.Struct体现的Go的优雅 1.代码如下,可细细体会struct的魅力 2.程序运行结果: 3.尤其需要注意...

网友评论

      本文标题:Go语言之任务完成

      本文链接:https://www.haomeiwen.com/subject/acxgsctx.html