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

OneDream · · 1173 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

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

 


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:OneDream

查看原文:on the go way (一)服务器并发

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

1173 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传