gpt4 book ai didi

c++ - 线程环基准

转载 作者:可可西里 更新时间:2023-11-01 16:25:59 25 4
gpt4 key购买 nike

今天我正在做Programming Erlang一书中的线程环练习,并在谷歌上搜索其他解决方案以进行比较。我发现语言枪战与 benchmark 有完全相同的问题。 .我的印象是这是 Erlang 应该很快的领域,但事实证明 C 和 C++ 再次领先。我怀疑 C/C++ 程序没有遵循“将 token 从一个线程传递到另一个线程”的规则。在阅读它们之后,它们似乎都操作了一些共享内存和全局变量,这与 Erlang 代码不同,但我可能是错的。

我的问题是:它们是在做同样的事情,还是 C/C++ 代码在概念上与 Erlang 不同(而且速度更快)?

还有一个问题:当解决方案非常相似时,为什么 Haskell 比 Erlang 更快?

最佳答案

C 版本使用的是 LWP,我认为它是一个用户空间线程库。这在多大程度上“不公平”尚待讨论:我会看看它是否支持真正的抢先式并发,在某种意义上你可以在一个线程中进行阻塞系统调用而不阻塞所有其他线程(你可以用 Haskell 做这个,你能用 Erlang 做吗?)。

Haskell 的线程比 Erlang 的稍微轻量,因为据我所知,Erlang 线程带有本地堆(在标准实现中),而 Haskell 线程都共享同一个堆。

关于c++ - 线程环基准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3532058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com