3.1 go context代码示例

context.WithCancel
返回两个有关联的对象,ctx与cancel,调用cancel发送一个空struct给ctx,ctx一旦接收到该对象后,就终止goroutine的执行;
ctx是线程安全的,可以同时传递给多个goroutine,触发cancel时,取消所有goroutine的执行
package mainimport ("context""fmt""time"
)func testContext(){ctx,cancel := context.WithCancel(context.Background())go d1(ctx)go d2(ctx)time.Sleep(7*time.Second)cancel()
}func d1(ctx context.Context){i:=0for {time.Sleep(1*time.Second)i++select {case <- ctx.Done():fmt.Println("d1 over")returndefault:fmt.Println("d1 ",i)}}
}func d2(ctx context.Context){fmt.Println("d2 start")<- ctx.Done()fmt.Println("d2 over")
}func main(){testContext()fmt.Println("main over")
}

输出

d2 start
d1  1
d1  2
d1  3
d1  4
d1  5
d1  6
main over

context.WithTimeout

package mainimport ("fmt""context""time"
)func d1(ctx context.Context){i := 0for{time.Sleep(1*time.Second)select{case <- ctx.Done():fmt.Println("d1 over")returndefault:fmt.Println("d1:",i)}}
}func test(){ctx,cancel := context.WithTimeout(context.Background(),5*time.Second)go d1(ctx)fmt.Println("begin sleep 10 sec")time.Sleep(10*time.Second)fmt.Println("10 sec over")cancel()
}func main(){test()
}
[root@phoenix go]# go run cc.go 
begin sleep 10 sec
d1: 0
d1: 0
d1: 0
d1: 0
d1 over
10 sec over

  

 

转载于:https://www.cnblogs.com/perfei/p/11529122.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS 中去除空格和换行的正则表达式写法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 //去除空格 String.prototype.Trim function() { return this.replace(/\s/g, ""); } //去除换行 function ClearBr(key) {…

科目三电子路考哪些情况会被评判不合格

2014年驾考科目三电子路考时需要注意&#xff0c;出现下列情形会被评判为不合格&#xff1a; 1、不按规定使用安全带或者戴安全头盔的; 2、遮挡、关闭车内音视频监控设备的; 3、不按考试员指令驾驶的; 4、不能正确使用灯光、雨刮器等车辆常用操纵件的; 5、起步时车辆后溜距离大…

FreeSql (一)入门

FreeSql 是一个功能强大的对象关系映射程序(O/RM)&#xff0c;支持 .NETCore 2.1 或 .NETFramework 4.5&#xff08;QQ群&#xff1a;4336577&#xff09; FreeSql采用MIT开源协议托管于 github。 特性 [x] 支持 CodeFirst 迁移&#xff1b;[x] 支持 DbFirst 从数据库导入实体类…

解决:Caused by: java.lang.UnsupportedOperationException: null

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.报错&#xff1a; 严重: Servlet.service() for servlet [lbd-institution] in context with path [/ins] threw exception [Reques…

2014科目三大路考各项目操作要求

机动车驾驶员考试科目三大路考到底都考哪些项目呢&#xff1f;每个项目的具体考试要求分别是什么&#xff1f;下面就跟着小编一起来了解一下吧&#xff01; 新驾考科目三考试内容及变化&#xff1a; A、上车准备;B、起步;C、直线行驶; D、加减挡位操作;E、变更车道; F、靠边停…

FreeSql (二)自动迁移实体

FreeSql 支持 CodeFirst 迁移结构至数据库&#xff0c;这应该是(O/RM)必须标配的一个功能。 与其他(O/RM)不同FreeSql支持更多的数据库特性&#xff0c;而不只是支持基础的数据类型&#xff0c;这既是优点也是缺点&#xff0c;优点是充分利用数据库特性辅助开发&#xff0c;缺点…

IntelliJ IDEA 设置代码检查级别

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 设置代码检查等级   IntelliJ IDEA中最右下角的小按钮可以设置当前编辑文档的代码检查等级&#xff0c;如图   Inspections 为最高等…

科目三路考流程及注意事项

机动车驾驶员考试科目三路考考试流程可分为7个步骤&#xff0c;分别有什么注意事项&#xff0c;下面就让小编给大家介绍下吧&#xff01; 1.上车前&#xff0c;无论你在车辆的什么位置&#xff0c;请务必从车的右侧绕过车头走到驾驶室门前&#xff0c;先观察车前道路上是否有障…

FreeSql (三)实体特性

主键(Primary Key) class Topic {[Column(IsPrimary true)]public int Id { get; set; } } 约定&#xff1a; 当没有指明主键时&#xff0c;命名为 id 的字段将成为主键&#xff1b;&#xff08;不区分大小写&#xff09;当主键是 Guid 类型时&#xff0c;插入时会自动创建&am…

spring 中构造Constructor、@Autowired、@PostConstruct、静态方法的执行顺序 (@PostConstruct 说明)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 关于注解 PostConstruct public interface PostConstructPostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上&#xff…

科目三靠边停车驾驶流程

科目三靠边停车项目考试要求是什么&#xff1f;靠边停车驾驶难不难&#xff1f;有什么驾驶技巧吗&#xff1f; 靠边停车考试项目中规定&#xff0c;车前保险杠离目标前后均不超过1250px&#xff0c;车距目标的横向距离保持在50-2500px之间&#xff0c;同时停车后车要与路边平行…

FreeSql (四)实体特性 Fluent Api

FreeSql 提供使用 Fluent Api&#xff0c; 在外部配置实体的数据库特性&#xff0c;Fluent Api 的方法命名与特性名保持一致&#xff0c;如下&#xff1a; fsql.CodeFirst.ConfigEntity<TestFluenttb1>(a > {a.Name("xxdkdkdk1").SelectFilter("a.Id22…

mybatis3 中 @Provider 的使用方式

若用MyBatis注解方式写sql&#xff0c;又想要XML写法的判断入参拼接条件&#xff0c;可以通过SelectProvider方式实现。 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 新建Provider …

科目三电子路考易错细节总结

小编咨询了多家驾校的教练员&#xff0c;总结了科目三电子路考中&#xff0c;考生犯错率最高的几个细节&#xff0c;下面就一起来看看是哪些吧&#xff0c;希望对还没参加科目三考试的朋友有所帮助。 ●起步前不使用安全带 在等待了约2小时后&#xff0c;考生史某终于坐上了考…

java 查询功能实现的八种方式

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 只是记录一下 1. HQL 2. Mybatis : mapper.xml 中写 sql 。 3. Mybatis : 注解 Select Select("select * from xxx_order wher…

科目三夜考考试内容及过关攻略

驾考科目三夜考&#xff0c;考试内容是什么&#xff1f;夜考到底难不难&#xff1f;具体评判标准是什么&#xff1f;夜考有什么驾驶技巧吗&#xff1f;本文&#xff0c;小编将一一为大家解析&#xff01; ●夜考过关攻略 场外考试的新增内容就是&#xff1a;在夜间和低能见度…

联合索引:创建、删除、查看 (解决报错:Duplicate key name)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 创建联合索引&#xff1a; CREATE INDEX idx_xxx_stitution ON xxx_order (status,institution_code) idx_xxx_stitution &#x…

科目三场外考试易出错的环节

现在很多的城市都已经开始实行电子考试&#xff0c;这使得科目三考试更加公平公正&#xff0c;但还是有考生在考试中忽略了场外易出错的环节导致成绩不合格。●起步前不使用安全带在等待了约2小时后&#xff0c;考生史某终于坐上了考试车。史某很兴奋地调整了座位&#xff0c;观…

FreeSql (八)插入数据时指定列

插入数据时指定列&#xff0c;和忽略列对应&#xff0c;未被指定的列将被忽略。 var connstr "Data Source127.0.0.1;Port3306;User IDroot;Passwordroot;" "Initial Catalogcccddd;Charsetutf8;SslModenone;Max pool size10";IFreeSql fsql new FreeSq…

mybatis 中 Example 的使用 :条件查询、排序、分页(三种分页方式 : RowBounds、PageHelpler 、limit )

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 import tk.mybatis.mapper.entity.Example;import com.github.pagehelper.PageHelper;...Overridepublic List<Repayxxx> listRep…