将想要的状态,
以“彩色”在大脑中呈现!

标签:并发编程

并发编程 GMP 原理与调度-自猿其说
Go教程

并发编程 GMP 原理与调度

ProMonkey阅读(321)评论(0)赞(0)

一、Golang “调度器” 的由来? (1) 单进程时代不需要调度器 我们知道,一切的软件都是跑在操作系统上,真正用来干活 (计算) 的是 CPU。早期的操作系统每个程序就是一个进程,知道一个程序运行完,才能进行下一个进程,就是 “单进程...

并发编程 爬虫小案例-自猿其说
Go教程

并发编程 爬虫小案例

ProMonkey阅读(329)评论(0)赞(0)

爬虫步骤 明确目标(确定在哪个网站搜索) 爬(爬下内容) 取(筛选想要的) 处理数据(按照你的想法去处理) package main import ( "fmt" "io/ioutil" "net/http" "regexp" ) //这个...

并发编程 原子操作(atomic包)-自猿其说
Go教程

并发编程 原子操作(atomic包)

ProMonkey阅读(290)评论(0)赞(0)

原子操作 代码中的加锁操作因为涉及内核态的上下文切换会比较耗时、代价比较高。针对基本数据类型我们还可以使用原子操作来保证并发安全,因为原子操作是Go语言提供的方法它在用户态就可以完成,因此性能比加锁操作更好。Go语言中原子操作由内置的标准库...

并发编程 并发安全和锁-自猿其说
Go教程

并发编程 并发安全和锁

ProMonkey阅读(296)评论(0)赞(0)

有时候在Go代码中可能会存在多个goroutine同时操作一个资源(临界区),这种情况会发生竞态问题(数据竞态)。类比现实生活中的例子有十字路口被各个方向的的汽车竞争;还有火车上的卫生间被车厢里的人竞争。 举个例子: var x int64...

并发编程 Sync-自猿其说
Go教程

并发编程 Sync

ProMonkey阅读(335)评论(0)赞(0)

sync.WaitGroup 在代码中生硬的使用time.Sleep肯定是不合适的,Go语言中可以使用sync.WaitGroup来实现并发任务的同步。 sync.WaitGroup有以下几个方法: 方法名 功能 (wg * WaitGro...

并发编程 定时器-自猿其说
Go教程

并发编程 定时器

ProMonkey阅读(305)评论(0)赞(0)

定时器 Timer:时间到了,执行只执行1次 package main import ( "fmt" "time" ) func main() { // 1.timer基本使用 //timer1 := time.NewTimer(2 * t...

并发编程 select-自猿其说
Go教程

并发编程 select

ProMonkey阅读(334)评论(0)赞(0)

select多路复用 在某些场景下我们需要同时从多个通道接收数据。通道在接收数据时,如果没有数据可以接收将会发生阻塞。你也许会写出如下代码使用遍历的方式来实现: for{ // 尝试从ch1接收值 data, ok := <-ch1 ...

并发编程 Goroutine池-自猿其说
Go教程

并发编程 Goroutine池

ProMonkey阅读(318)评论(0)赞(0)

worker pool(goroutine池) 本质上是生产者消费者模型 可以有效控制goroutine数量,防止暴涨 需求: 计算一个数字的各个位数之和,例如数字123,结果为1+2+3=6 随机生成数字进行计算 控制台输出结果如下: p...

并发编程 Channel-自猿其说
Go教程

并发编程 Channel

ProMonkey阅读(302)评论(0)赞(0)

channel 单纯地将函数并发执行是没有意义的。函数与函数间需要交换数据才能体现并发执行函数的意义。 虽然可以使用共享内存进行数据交换,但是共享内存在不同的goroutine中容易发生竞态问题。为了保证数据交换的正确性,必须使用互斥量对内...

并发编程 runtime包-自猿其说
Go教程

并发编程 runtime包

ProMonkey阅读(299)评论(0)赞(0)

runtime.Gosched() 让出CPU时间片,重新等待安排任务(大概意思就是本来计划的好好的周末出去烧烤,但是你妈让你去相亲,两种情况第一就是你相亲速度非常快,见面就黄不耽误你继续烧烤,第二种情况就是你相亲速度特别慢,见面就是你侬我...

聚合实用在线工具

前往在线工具