服务器并发的方式有很多种
1.通过多进程或者多线程的方式,现在这种模式基本上已经不用
2.epoll和IOCP回调的方式,不符合人们的习惯
3.使用协程(轻量级线程,创建、销毁的代价很小),协程在逻辑上上顺序执行
其中属于erlang和golang在协程并发方面做的比较好
package main
import (
"fmt"
)
func getResult(data []int, res chan int) {
var sum int
sum = 0
for _, v := range data {
sum += v
}
res <- sum
}
func main() {
var res = make(chan int)
var data = []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
go getResult(data[:5], res)
go getResult(data[5:], res)
sum := <-res
sum += <-res
fmt.Println("the answer result is ", sum)
close(res)
}