关于多核编程的一点想法

Comments(28)


Posted on 2015-06-30 17:18:28 os


Nim语言有很多语言上先进的特性和接近Python的语法,Rust定位成C++的直接竞争者。 但是请认真思考:这两个语言从一出生开始,都没有解决,而且以后也很难解决本世纪软件业的一次重大危机:多核编程危机。 它们的出现就不是冲着解决多核编程问题来的,基因决定了,靠这两门语言解决不了多核编程的问题。

怎么解决多核编程的问题?

屏蔽硬件上的复杂特性,例如缓存、一致性、内存屏障、原子操作,给程序员简单的并发特性,在编程时存在尽量少的心智负担。

GO可以在内存中创建成千上万的协程,并且提供了协程间通信的基础设施,单凭这两点,Nim和Rust都没有做到。

Nim语言目前没有实现自身的汇编器和链接器,Nim代码首先被编译为C代码,再把C代码编译为本地机器码。 Golang自带汇编器和链接器。

Rust官方最初的目标是像Erlang一样可以创建大量的协程,但是这个目标被官方抛弃了,所以Rust里面是并发执行体不是协程,是OS级别的线程。在高并发场景下,1000个OS的线程同时运行效率就变得非常差。或者可以选择异步模型,但是又面临回调地狱,并且要小心同步IO和CPU密集型计算阻塞当前线程。如果使用第三库必须经过改造以适合异步模型。

因为Rust官方明白,实现完整高效的的协程调度,难度很大。这方面Go做的很好,其他静态编译类型的语言都没有超过它。

我们可以说Nim和Rust的定位不同,要解决各自的目标问题。 但是很多人拿Nim和Go对比的时候,根本没有,而且也不敢把这两种语言的特性和Go的核心特性来对比。

多核编程,是目前遇到的问题,而且是难以解决的问题,谁能解决的高效和优雅,谁就能在未来获胜。

许世伟说过,他在C++中实现协程和协程调度,到头来也只是对Golang的拙劣的模仿,我想Rust官方最初的想法也大概如此吧。

而且我相信Ken Thompson和Russ Rox这两位大师的眼界。

知乎上关于Rust高并发框架实现的问题:http://www.zhihu.com/question/30325880

前一篇: Golang网络库中socket阻塞调度源码剖析 后一篇: mmap实例及原理分析

Captcha:
验证码

Email:

Content: (Support Markdown Syntax)


Alice  2022-10-31 08:48:45 From 127.0.0.1

CG in films show us a new magical world. Have you ever wonder about the real heights of actors who play Hobbits in Lord of the Rings? You can find the answer on celeb height wiki with some clicks.


Madie  2023-02-11 13:43:45 From 127.0.0.1

pqkino.ru


NvPCEXQvj  2023-07-23 18:55:15 From 127.0.0.1

buy cialis generic The body down regulates thyroid hormone production to save calories and reduce calorie expenditure as heat


ESABONG  2023-10-09 08:10:00 From 127.0.0.1

I finally found great post here.I will get back here. I just added your blog to my bookmark sites. esabong update today


ufabet1688  2023-12-15 16:27:05 From 127.0.0.1

Have you noticed the news has changed its approach recently? What used to neve be brought up or discussed has changed. It’s that time to chagnge our stance on this though. ufabet1688


UFAAUTO789  2023-12-20 14:15:29 From 127.0.0.1

ufa789 เข้าสู่ระบบ หมดยุคบ่อนบนดิน รวยได้จริงแค่เล่นออนไลน์


UFAAUTO789  2023-12-20 14:34:06 From 127.0.0.1

ufabet auto เว็บพนันครบวงจร แทงบอล บาคาร่า สล็อต ครบจบที่เดียว


betflixvip  2024-01-02 07:45:00 From 127.0.0.1

I am always searching online for articles that can help me. There is obviously a lot to know about this. I think you made some good points in Features also. Keep working, great job! betflixvip