求一个方法 GO执行无需等待立刻返回

hellsam · 2023-03-12 16:45:57 · 5531 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2023-03-12 16:45:57 的主题,其中的信息可能已经有所发展或是发生改变。


求一个方法 GO执行无需等待立刻返回

主要用于队列, 比如执行一个方法,异步马上返回完成,实际后台还在跑。

func GETurl(str string, count int) error {
    for i := 0; i < count; i++ {
        //比如执行get第http url
        //写日志
    }

    return nil //执行完毕
}

func main() {

    ret := GETurl("URL")
    fmt.Println("立刻响应得到NUL,让GETurl后台去执行,主要用于队列异步")

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5531 次点击  
加入收藏 微博
12 回复  |  直到 2024-10-16 07:54:10
lxzan
lxzan · #1 · 2年之前

开个协程不就行了

hellsam
hellsam · #2 · 2年之前
lxzanlxzan #1 回复

开个协程不就行了

协程好像也是卡在哪里的。 需要等返回的。

EddyLee1010
EddyLee1010 · #3 · 2年之前

这不就是go 最简单的协程么

hellsam
hellsam · #4 · 2年之前
EddyLee1010EddyLee1010 #3 回复

这不就是go 最简单的协程么

求打包赐教 给个demo谢谢,我找遍百度 找到的都是阻塞的方法,要要非阻塞的 比如 go Demo(map)

func Demo(map [string]string){
  //或则for循环遍历多少任务一个个跑
  err := Get();
  if err!=nil{
  writeLog(err)
}
}
EddyLee1010
EddyLee1010 · #5 · 2年之前
hellsamhellsam #4 回复

#3楼 @EddyLee1010 求打包赐教 给个demo谢谢,我找遍百度 找到的都是阻塞的方法,要要非阻塞的 比如 go Demo(map) ~~~ func Demo(map [string]string){ //或则for循环遍历多少任务一个个跑 err := Get(); if err!=nil{ writeLog(err) } } ~~~

我这里用 go func 就是非阻塞的。不知道你啥情况

hellsam
hellsam · #6 · 2年之前
EddyLee1010EddyLee1010 #5 回复

#4楼 @hellsam 我这里用 go func 就是非阻塞的。不知道你啥情况

go func 还没执行完毕 程序就结束了, 如果用其他wg之类东西监听 还是阻塞

lysShub
lysShub · #7 · 2年之前
hellsamhellsam #6 回复

#5楼 @EddyLee1010 go func 还没执行完毕 程序就结束了, 如果用其他wg之类东西监听 还是阻塞

你不是废话吗,要返回结果不得执行完了

LiuXSH
LiuXSH · #8 · 2年之前

问题问的有点奇怪,你应该是想不让主程序退出吧

czyt
czyt · #9 · 2年之前

go func(){} select{}

hellsam
hellsam · #10 · 6月之前
tuzhiya
tuzhiya · #11 · 6月之前

用协成 比如 actionlog.go

mengmeng
mengmeng · #12 · 5月之前

异步多线程 XJD

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传