常见并发模型
- 进程 & 线程(Apache)C10K
- 异步非阻塞(Nginx,Libevent,NodeJS) 复杂度高
- 协程 (Golang,Erlang,Lua)
并发与并行
- 并发:指同一时刻,系统通过调度,来回切换交替的运行多个任务,"看起来"是同时进行
-
并行:指同一时刻,两个任务"真正的"同时进行
图一.png
Golang并发实现
- 程序并发执行(goroutine)
- 多个goroutine间的数据同步和通信(channels)
- 多个channel选择数据读取或写入(select)
Goroutine(程序并发执行)
foo() //执行函数foo,程序等待函数foo返回 go foo() //执行函数foo bar() //不用等待foo返回
Channels(多个goroutine间的数据同步和通信)
c := make(chan string) //创建一个channel
go func() {
time.Sleep(time.Second*1)
c <- "hello world" //发送数据到channel中
}()
msg := <- c //阻塞直到接收到数据
Select(从多个channel中读取或写入数据)
select{
case v := <-c1:
fmt.Println("channel 1 send",v)
case v := <-c2:
fmt.Println("channel 2 send",v)
default: //可选
fmt.Println("channel was ready")
}
//c1和c2同时有数据时,select随机选一个
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
来吧!带你玩转 Excel VBA
罗刚君、杨嘉恺 / 电子工业出版社 / 2013-7 / 85.00元
本书旨在普及Excel VBA 基础理论,以及通过VBA 的高级应用扩展Excel 的功能,提升读者的制表效率,解决工作中的疑难,同时亦可借此开发商业插件。 本书主要分为操作自动化引言篇、入门篇、进阶篇和疑难解答篇,覆盖从入门到提高的所有内容,以满足不同层次的读者需求。其中操作自动化引言篇简述了操作自动化的需求与方式,借此引出VBA 入门篇。VBA 入门篇包含第2 章到第13 章,主要介绍了......一起来看看 《来吧!带你玩转 Excel VBA》 这本书的介绍吧!