on the go way (一)服务器并发

服务器并发的方式有很多种

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)
}

 

posted on 2016-03-21 11:43  AAAAAApple  阅读(201)  评论(0编辑  收藏  举报

导航