Go语言直接支持内置支持并发。当一个函数创建为goroutine时,Go会将其视为一个独立的工作单元。这个单元会被调度到可用的逻辑处理器上执行。 Go语言运行时的调度器是一个复杂的软件,这个调度器在操作系统之上。操作系统的线程与语言运行时的逻辑处理器绑定,并在逻辑处理器上运行goroutine。 G... ...
分类:
编程语言 时间:
2019-01-15 00:52:04
阅读次数:
240
G-P-M模型;主goroutine和其它goroutine;让多个goroutine按照既定的顺序执行;I++不是原子操作
分类:
其他好文 时间:
2019-01-14 11:55:46
阅读次数:
202
转自:http://jolestar.com/parallel-programming-model-thread-goroutine-actor/ 先梳理下两个概念,几乎所有讲并发的文章都要先讲这两个概念: 并发(concurrency) 并发的关注点在于任务切分。举例来说,你是一个创业公司的CEO ...
分类:
其他好文 时间:
2018-12-18 21:24:18
阅读次数:
166
context:超时处理,保存上下文(Key-Value),控制goroutine,DeadLine超时;sync.WaitGroup:等待goroutine执行完毕,可以等待多个goroutine
分类:
编程语言 时间:
2018-12-14 00:53:21
阅读次数:
227
package main import ( "fmt" "runtime" "sync" "time" ) func test_goroutine() { fmt.Println("函数被执行了**********... ...
分类:
系统相关 时间:
2018-12-09 16:20:31
阅读次数:
616
进程,线程的概念在操作系统的书上已经有详细的介绍。进程是内存资源管理和cpu调度的执行单元。为了有效利用多核处理器的优势,将进程进一步细分,允许一个进程里存在多个线程,这多个线程还是共享同一片内存空间,但cpu调度的最小单元变成了线程。那协程又是什么东西,以及与线程的差异性?? 协程,可以看作是轻量 ...
分类:
其他好文 时间:
2018-12-09 10:40:51
阅读次数:
228
管道的使用介绍 现在要计算 1-N 的各个数的阶乘,并且把各个数的阶乘放入到 map 中。最后显示出来。要求使用 goroutine 完成 问题1:使用goroutine时,主线程执行结束,即使协程没有执行完毕也会结束,顾map没有结果 问题2:fatal error:并发写 排查方法:在运行某个程 ...
分类:
其他好文 时间:
2018-12-03 01:17:12
阅读次数:
257
由于作者不习惯该编辑器,只是将本文的截图贴了出来,详文见:https://www.yuque.com/docs/share/5953bb1e-8a68-4840-81d3-1b3b0b13d113
分类:
其他好文 时间:
2018-12-02 00:31:45
阅读次数:
242
worker pool简介 worker pool其实就是线程池thread pool。对于go来说,直接使用的是goroutine而非线程,不过这里仍然以线程来解释线程池。 在线程池模型中, 有2个队列一个池子:任务队列、已完成任务队列和线程池 。其中已完成任务队列可能存在也可能不存在,依据实际需 ...
分类:
其他好文 时间:
2018-11-22 23:58:15
阅读次数:
290