Golang的CSP功能强大,.NET也能轻松实现吗?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2334个文字,预计阅读时间需要10分钟。
Golang(后称Go)因其高并发特性而备受青睐。深入探究其本质,便是+Goroutine。在家喻户晓的优雅语法和简洁代码的背后,它实现了高效的并发程序。其特色包括:
CSP(Communicating sequential processes)说起Golang(后面统称为Go),就想到他的高并发特性,在深入一些就是 Goroutine。在大家被它优雅的语法和简洁的代码实现的高并发程序所折服时,其实C#/.NET也可以很容易的做到。今天我们来参照Go,来用C#实现它所采用的的CSP并发模型。
这东西我一开始以为很简单,后面差了资料发现它独树一帜,自己是一门语言,也是一套理论。这边我不深入的对它做过多的见解,我怕耽误大家=_=,大家可以看看wiki。
wiki:en.wikipedia.org/wiki/Communicating_sequential_processes
我们从Go的角度对它进行一些分析,摘抄一段概要:
“用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型。 CSP中channel是第一类对象,它不关注发送消息的实体,而关注与发送消息时使用的channel。”
好了,单独写出 CSP 是为了让大家了解这是一套独立于语言的东西,大家有兴趣可以查看wiki和搜索一些其它资料。
在Go中的CSPChannel(通道)Goroutine(不知道怎么翻译,大家可以理解成一个“工作者”,不是工作者线程。本质是实现了协程。)
协程(提升并发的利器)大家都很明白线程能做什么,但协程是个什么东西?比起线程又如何呢?
线程我们重新思考一些东西。
本文共计2334个文字,预计阅读时间需要10分钟。
Golang(后称Go)因其高并发特性而备受青睐。深入探究其本质,便是+Goroutine。在家喻户晓的优雅语法和简洁代码的背后,它实现了高效的并发程序。其特色包括:
CSP(Communicating sequential processes)说起Golang(后面统称为Go),就想到他的高并发特性,在深入一些就是 Goroutine。在大家被它优雅的语法和简洁的代码实现的高并发程序所折服时,其实C#/.NET也可以很容易的做到。今天我们来参照Go,来用C#实现它所采用的的CSP并发模型。
这东西我一开始以为很简单,后面差了资料发现它独树一帜,自己是一门语言,也是一套理论。这边我不深入的对它做过多的见解,我怕耽误大家=_=,大家可以看看wiki。
wiki:en.wikipedia.org/wiki/Communicating_sequential_processes
我们从Go的角度对它进行一些分析,摘抄一段概要:
“用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型。 CSP中channel是第一类对象,它不关注发送消息的实体,而关注与发送消息时使用的channel。”
好了,单独写出 CSP 是为了让大家了解这是一套独立于语言的东西,大家有兴趣可以查看wiki和搜索一些其它资料。
在Go中的CSPChannel(通道)Goroutine(不知道怎么翻译,大家可以理解成一个“工作者”,不是工作者线程。本质是实现了协程。)
协程(提升并发的利器)大家都很明白线程能做什么,但协程是个什么东西?比起线程又如何呢?
线程我们重新思考一些东西。

