【GoLang】golang context channel 详解
代码示例:
package main import (
"fmt"
"time" "golang.org/x/net/context"
) func main() {
// ctx, cancelFunc := context.WithDeadline(context.Background(), time.Now().Add(time.Second*5))
ctx, cancelFunc := context.WithTimeout(context.Background(), time.Second*)
ctx = context.WithValue(ctx, "Test", "")
// defer cancelFunc() if t, ok := ctx.Deadline(); ok {
fmt.Println(time.Now())
fmt.Println(t.String())
}
go func(ctx context.Context) {
fmt.Println(ctx.Value("Test"))
for {
select {
case <-ctx.Done():
fmt.Println(ctx.Err())
return
// default:
// continue
}
}
}(ctx)
// if ctx.Err() == nil {
// fmt.Println("Sleep 10 seconds...")
// time.Sleep(time.Second * 10)
// }
// if ctx.Err() != nil {
// fmt.Println("Alredy exit...")
// }
time.Sleep(time.Second * )
cancelFunc()
// for {
// if ctx.Err() != nil {
// fmt.Println("gracefully exit...")
// break
// }
// }
}
go程序包源码解读——golang.org/x/net/context:
http://m.blog.csdn.net/article/details?id=49100433
Go语言并发模型:像Unix Pipe那样使用channel:
https://segmentfault.com/a/1190000006261218
http://www.dotcoo.com/golang-channel-is-closed
如何安全关闭channel:
http://www.golangtc.com/t/53d8a5e1320b5252650000f0
channel小技巧: http://www.jb51.net/article/68909.htm
使用Golang的Context管理上下文: http://blog.csdn.net/u014029783/article/details/53782864
Go语言并发模型:使用 context: https://segmentfault.com/a/1190000006744213
golang x/net/context包笔记: http://blog.csdn.net/sryan/article/details/51969129
golang-context使用方式: http://www.tuicool.com/articles/ENnyYvR
Golang 1.7.3 Context 简单用法.类似sync.WaitGroup: http://blog.csdn.net/fyxichen/article/details/52104549
golang中context包解读: http://www.tuicool.com/articles/n6rInyn
Go语言并发模型:使用 context: http://www.tuicool.com/articles/3ieeuay
【GoLang】golang context channel 详解的更多相关文章
- Golang Context 包详解
Golang Context 包详解 0. 引言 在 Go 语言编写的服务器程序中,服务器通常要为每个 HTTP 请求创建一个 goroutine 以并发地处理业务.同时,这个 goroutine 也 ...
- Golang官方log包详解
Golang官方log包详解 以下全是代码, 详解在注释中, 请从头到尾看 // Copyright 2009 The Go Authors. All rights reserved. // Use ...
- <context:component-scan>详解 转发 https://www.cnblogs.com/fightingcoding/p/component-scan.html
<context:component-scan>详解 默认情况下,<context:component-scan>查找使用构造型(stereotype)注解所标注的类,如@ ...
- Context知识详解
Context知识详解 建议配合context知识架构图食用. 一.什么是Context 贴一个官方解释: Interface to global information about an appli ...
- Go Channel 详解
原文链接:Go Channel 详解 Channel类型 Channel类型的定义格式如下: ChannelType = ( "chan" | "chan" & ...
- netty系列之:netty中的Channel详解
目录 简介 Channel详解 异步IO和ChannelFuture Channel的层级结构 释放资源 事件处理 总结 简介 Channel是连接ByteBuf和Event的桥梁,netty中的Ch ...
- 大数据学习day36-----flume02--------1.avro source和kafka source 2. 拦截器(Interceptor) 3. channel详解 4 sink 5 slector(选择器)6 sink processor
1.avro source和kafka source 1.1 avro source avro source是通过监听一个网络端口来收数据,而且接受的数据必须是使用avro序列化框架序列化后的数据.a ...
- Go Context 原理详解
实现一个小目标 很开心的一件事,学习了一个月的后端拿到一个13k的offer,今年年底目标拿到一个30k的go方向offer. 好了回归正文,这篇文章是回答交流时一个老哥的问题,跟go的context ...
- [GO语言的并发之道] Goroutine调度原理&Channel详解
并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题:Go语言作为一个出道以来就自带 『高并发』光环的富二代编程语言,它的并发(并行)编程肯定是值得开发者去探究的,而Go ...
随机推荐
- Unity 下载
Unity历史版本 http://wiki.ceeger.com/unity:history#unity_522f1 UNITY 下载存档 http://unity3d.com/cn/get-unit ...
- 用IIS配置反向代理
http://my.oschina.net/tanyixiu/blog/123832 目标服务器:targetServer 配置反向代理的服务器:reveseProxServer 1.确定最终访问的网 ...
- Elmah 日志记录组件
http://www.cnblogs.com/jys509/p/4571298.html 简介 ELMAH(Error Logging Modules and Handlers)错误日志记录模块和处理 ...
- <meta>标签元素的属性理解
meta是用来在HTML文档中模拟HTTP协议的响应头报文.meta 标签用于网页的<head>与</head>中,meta 标签的用处很多.meta 的属性有两种:name和 ...
- Python之路【第六篇】:面向对象编程相关
判断类与对象关系 isinstance(obj, cls) 判断对象obj是否是由cls类创建的 #!/usr/bin/env python #-*- coding:utf-8 -*- class ...
- asp.net mvc 4 高级编程学习笔记:第三章 视图(2)
页面布局 asp.net MVC中提供了布局的支持,默认情况下才布局文件保存到 /View/Shared/目录下的_Layout.cshtml,View目录有个_ViewStart.cshtml文件, ...
- [c#]获取exchange中的图片
摘要 在exchange 2007或者2010中获取的邮件内容为html标签格式,也就是一个页面.如果里面含有img标签,你会发现img标签的src属性为cid:xxxxxxxxxxxx的一串字符串, ...
- [MongoDB]可视化工具Robomongo
摘要 习惯了可视化的管理数据的方式,通过敲命令,确实有些不自在.这里推荐一个mongodb的可视化工具——Robomongo 相关文章 [MongoDB]入门操作 [MongoDB]增删改查 [Mon ...
- echo '.SUFFIXES: .cpp' >> ${OUTPUT_FILE}
当前makefile或shell内支持文件后缀的类型列表,意思是文件支持.cpp结尾的类型,并且将他,输出到OUTPUT_FILE函数. 见网上有人说: “makefile中 .SUFFIXES: . ...
- java的集合框架最全详解
java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...