go mysql 异步_怎样理解golang的异步?

本文探讨了Go语言如何使用同步编程方式实现异步效果,以一个示例代码展示。在示例中,`sum`函数执行耗时操作并使用通道(channel)传递结果。`another`函数在等待结果的同时执行其他任务。同步异步的理解是:同步调用需要主动获取结果,而异步调用则通过回调通知结果。阻塞与非阻塞主要涉及IO操作,与同步异步概念不同。
摘要由CSDN通过智能技术生成

都说golang,可以用同步的思想写出异步的代码,不知道大家都是如何理解这句话的?

下面这段代码算是这句话的一个例子吗?

func sum(x,y int,c chan int){

time.sleep(5*time.Second)

c

}

func another(c chan int){

fmt.Println(

do something else...

}

func main(){

c := make (chan int)

go sum(24,18,c)

go another(c)

fmt.Println("继续执行")

do something else...

time.Sleep(60*time.Second)

}

此外,再说一下我对同步异步阻塞非阻塞的理解:

阻塞非阻塞:一般用于网络io中,阻塞即需要等待,不会立即返回。非阻塞则会立刻返回。

同步异步:当一个同步调用发出后,调用者要主动去获取调用结果。当一个异步过程调用发出后,实际处理这个调用的部件在完成后,通过消息回调来通知调用者调用的结果。

可以明确的是,阻塞与非阻塞与是否同步异步无关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值