golang之context介绍

[TOC]一、Context作用context.Context是Go中定义的一个接口类型,从1.7版本中开始引入。其主要作用是在一次请求经过的所有协程或函数间传递取消信号及共享数据,以达到父协程对子协程的管理和控制的目的。需要注意的是context.Context的作用范围是一次请求的生命周期,即随着请求的产生而产生,随着本次请求的结束而结束。二、基本数据结构在context包中,conte...

GO 2024-01-26 PM 697次 0条

go并发之channel底层实现原理

[TOC]前言在开始本章节之前还是要反复唠叨一句话:Go channel设计模式是:不要通过共享内存的方式进行通信,而是应该通过通信的方式共享内存。如果不理解的可以看之前的文章,本章节不再过多赘述。一、核心数据结构1.1 hchanGo语言channel是first-class的,意味着它可以被存储到变量中,可以作为参数传递给函数,也可以作为函数的返回值返回。作为Go语言的核心特征之一,虽然...

GO 2024-01-19 PM 874次 0条

go并发之channel

[TOC]一、channel的发送与接收特性Go 语言中最常见的、也是经常被人提及的设计模式就是:不要通过共享内存的方式进行通信,而是应该通过通信的方式共享内存。在很多主流的编程语言中,多个线程传递数据的方式一般都是共享内存,为了解决线程竞争,我们需要限制同一时间能够读写这些变量的线程数量,然而这与 Go 语言鼓励的设计并不相同。下面是多线程之间使用共享内存实现传递数据图示。虽然我们在 Go...

GO 2024-01-18 PM 705次 0条