31、Go语言并发与Web服务开发

Go语言并发与Web服务开发

1. Go语言并发编程

在Go语言的并发编程中, time.After() 函数的输出长行代表其返回值,显示了 After() 函数在返回的通道上发送当前时间的时刻,这些都表明程序运行正常。若定义较大的延迟,程序输出示例如下:

$ go run useContext.go 13
Delay: 13
f1() Done: context canceled
f2() Done: context canceled
f3() Done: context canceled

这表明程序执行出现延迟时会被取消操作。

1.1 context.WithCancelCause方法

Go 1.21 引入了 context.WithCancelCause() 方法,其主要优势在于提供了定制化功能,这是 context 包中其他方法所不具备的,除此之外,它的行为与 WithCancel() 类似。以下是使用示例:

func main() {
    ctx := context.Background()
    ctx, cancel := context.WithCancelCause(ctx)
    cancel(errors.New("Canceled by timeout"))
    err := takingToo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值