Rust语言神奇的并发模型

              
banq 15-04-17

当业界各种语言在并发模型上你争我夺时,新的系统语言Rust却在无意间展现其神奇的并发模型,神奇之处是将安全和并发完美地统一在一起。

大部分语言都是为了并发而并发,从线程锁角度不断优化,直至无锁Lock-free,但是无锁的解决方案还是有限制的,后来有了协程或者纤程,是一种比普通线程更加轻量的线程;也有了Actor模型和Channel模型两种解决方案,这些组件化的并发模型本质上是一种装配线并发模型,包括Node.js的异步或Reactive模型,是将原本一个线程需要完成的多道工序切分分离,根据需要调度执行,从而避免了堵塞。

Rust语言项目初始是为了解决两个棘手问题:

1. 如何进行安全的系统编程?
2.如何实现无痛苦的并发编程

最初,这些问题似乎是毫不相关,但是让人惊讶的是,最终解决方案被证明两者是相通的,越安全反而越并发。
因此,从安全角度考虑并发真是让人耳目一新,而且可能会起到四两拨千斤的作用,具体文章见:

Rust语言并发模型

3
linzi
2015-06-05 13:04

您好,banq,Rust并发和Golang的有什么区别,一直做java,最近正在学习golang,想用go的并发编程,处理大量数据同步的问题,无意间看到您写的Rust并发,所以由此一问;其次,对于处理大量数据的问题(不用java解决方案,如hadoop,因为太重了),希望您给出一些建议。

banq
2015-06-06 10:11

Go语言当前也受到更加强劲的Rust语言挑战,如果说,Go语言的Channel是一种有形的设计,那么,Rust语言的并发模型达到无形的设计,只要你编写好函数方法,安全性与并发性就无形中得到了解决,不用专门去思考并发,有意识地去使用并发组件模型编程。