自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 Go并发模式之 错误处理

不好的处理错误方式,或者说 没有进行错误处理的例子:func main() { checkStatus := func(done <-chan interface{}, urls ...string) <-chan *http.Response{ responses := make(chan *http.Response) go func() { defer ...

2019-03-26 22:58:02 896

原创 Go并发模式之 防止goroutine泄漏

goroutine 有以下几种方式被终止:1。 当他完成了它的工作。2。 因为不可恢复的错误, 它不能继续工作3。 当他被告知 需要终止工作。我们可以简单的使用前两种方法, 因为这两种方法隐含在你的算法中, 但"取消工作" 又是怎样工作的呢?例如:这样情况: 子goroutine 是否该继续执行可能是以许多其他goroutine 状态的认知为基础的。通常是 main gorou...

2019-03-17 23:22:58 1602

原创 Go并发模式之 for-select

for - selectfor{ //要不就无限循环,要不就使用range 语句循环 select{ //使用channel进行作业 }}以下情况使用 for-select向channel 发送迭代变量 ---for selectfor _, s := range []string{"a", "b", "c"}{ select { ...

2019-03-17 18:14:39 8236

原创 Go并发模式之 约束

约束:在编写并发代码的时候,有以下几种不同的保证操作安全的方法。1。 用于共享内存的同步原语(如sync.Mutex)2. 通过通信来 共享内存来进行同步(如 channel)在并发处理中还有其他几种情况也是隐式并发安全的:3。 不会发生改变的数据4。 受到保护的数据约束:特定约束,和 词法约束特定约束:是通过公约实现约束的。 无论是由语言社区, 你所在的团队, 还是你的代码...

2019-03-17 17:58:20 162

原创 Go并发原语/并发组件/go并发核心语法 之select

select 语句是 将各种channel 绑定在一起的粘合剂; 连接各种组件在一起;select 语句可以帮助安全地将channel 与诸如取消,超时,等待和默认值之类 的概念结合在一起。与 switch 块不同, select 块中的case 语句没有测试顺序,如果没有满足任何条件,执行也不会失败。如果所有channel 都没有准备好,则阻塞状态直到 。当一个channel准备好了,...

2019-03-16 23:31:22 242 1

原创 Go并发原语/并发组件/go并发核心语法 之channel

channel:虽然 他们可以用来同步内存访问; 但他们最好用于在 goroutine 之间传递信息。命名: 像河流一样,一个channel充当着信息传送的管道,值可以沿着channel传递,然后在下游读出。由于这个特点,通常使用"stream" 来做 chan 变量名的后缀。创建channel 语句:var dataStream chan interface{}...

2019-03-16 23:14:54 18910 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除