摘要:golang并发编程-01多进程编程-01概述
阅读全文
摘要:golang并发编程-01多进程编程-02管道
阅读全文
摘要:@[toc] # 1. 开始/停止自行处理接收到的信号 是IPC中唯一一种异步的通讯方法。 ```go func Signal01() { //01 创建过程 fmt.Println(" 创建过程 ") //创建一个通道1 sigRecv1 := make(chan os.Signal, 1) //
阅读全文
摘要:@[toc] # 1. 基本特性 ## 1.1 声明 ```go int socket(int domain, int type, int protocol); ``` ### 1.1.1 三个接收参数 - 通讯域 - 类型 - 所用协议。 #### 1)通讯域 ,线程必须属于一个进程。 - 进程中的所有线程都拥有自己
阅读全文
摘要:@[toc] # 1. 互斥量 ## 1.1 互斥 在同一时刻,只允许一个线程处于临界区之内的约束被称为互斥(mutex)。 ## 1.2 互斥量 每一个线程在进入临界区之前都必须先锁定某个对象,这个对象被称为互斥对象或互斥量。 >只有成功锁定对象的线程才会被允许进入到临界区之内,否则就会被阻塞。
阅读全文
摘要:[toc] # 1. 协程(Goroutine) >Goroutine——协程,有的人跟我说不是,我不想反驳,也不打算改。 ## 1.1 一些相关概念 >下边这些概念之前提到过,这里需要用到,所以再诠释一遍。 **1)线程的三个核心元素:** - M:Machine的缩写。一个M代表了一个内核线程。
阅读全文
摘要:@[toc] # 1. 通道的基本使用 - 同一时间,仅允许一个协程对其写入/读出 - 严格排序,先进先出 - 通道元素有原子性 >比如:放进一个 []string,也不能单次取出一个 string - 已被接收的元素值会立刻被从通道中删除 ## 1.1 声明通道 - 语法 ```go type 通
阅读全文
摘要:@[toc] # 1. 定时器 ## 1.1 time.NewTimer - 语法 创建一个定时器 ```go time.NewTimer(N * time.Second) ``` >该定时器到设定时间会向通道中写入一个当时时间。 >而在此之间,线程会阻塞。 - 示例 >要求: 写一个定时器,设定五
阅读全文
摘要:@[toc] # 1. 互斥锁 ## 1.1. 结构体 Mutex ### 1.1.1 结构体定义 ```go type Mutex struct { state int32 sema uint32 } ``` ### 1.1.2 结构体下方法 - Lock() - lockSlow() - Unl
阅读全文
摘要:@[toc] # 1. sync.Cond结构体 - 结构体定义 ```go type Cond struct { noCopy noCopy L Locker notify notifyList checker copyChecker } ``` - 作用 实现了一个条件变量,用于等待一个或一组协
阅读全文
摘要:@[toc] >Go语言提供的原子操作都是非侵入式的。它们由标准库代码包sync/atomic中的众多函数代表。 # 1 载入 ## 1.1 Load 的6个函数 ```go func LoadInt32(addr *int32) (val int32) func LoadInt64(addr *i
阅读全文
摘要:@[toc] # 1. 函数仅执行一次(onceDo) ## 1.1 语法 - 作用 传入onceDo的函数,不管调用多少次onceDo,也只会执行一次(首次执行)。 - 语法 ```go func (o *Once) Do(f func()) ``` 示例 ```go var once sync.
阅读全文
摘要:@[toc] # 1. sync.Pool结构体 ## 1.1 结构体定义 ```go type Pool struct { noCopy noCopy local unsafe.Pointer localSize uintptr victim unsafe.Pointer victimSize u
阅读全文