Golang - context.TODO()和context.Background()的区别

发布时间 2023-11-28 14:09:30作者: 李若盛开

context.Background():上下文的默认值(创建上下文的默认起点),这个函数返回一个空context,返回值就是根节点,这只能用于最高等级(在main函数、初始化或顶级请求处理中),因为所有其他的上下文都应该从它衍生(Derived)出来

context.TODO():通常用作占位符或临时解决方案,只在不确定应该使用哪种上下文时使用

说明:

1)、background todo 本质上都是 emptyCtx 结构体类型,是一个不可取消(只能调用cancel()函数取消继承于background todocontextbackground todo本身不能被取消),没有设置截止时间,没有携带任何值的Context

2)、给一个函数方法传递Context的时候,不要传递nil,如果不知道传递什么,就使用context.TODO