Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Erlang并发和核心管理_Java_C++_Multithreading_Concurrency_Erlang - Fatal编程技术网

Java Erlang并发和核心管理

Java Erlang并发和核心管理,java,c++,multithreading,concurrency,erlang,Java,C++,Multithreading,Concurrency,Erlang,所以我看了几年前(2008年)的这段视频,乔·阿姆斯特朗在视频中解释了二郎的背景。 他提出了一个很好的理由,我要问的是当他在13:07说这句话时: [Erlang]是一种]并发语言;我的意思是在 该语言是编程语言的一部分。它们不属于我们 到操作系统。这就是语言的真正问题所在 像java和C++一样,线程不是在编程中。 语言;线程是操作系统中的一些东西 它们继承了操作系统中的所有问题。什么之中的一个 问题是内存管理系统的粒度 他还谈到了线程管理的问题,以及线程管理与语言和操作系统之间的这种脱节的关

所以我看了几年前(2008年)的这段视频,乔·阿姆斯特朗在视频中解释了二郎的背景。 他提出了一个很好的理由,我要问的是当他在13:07说这句话时:

[Erlang]是一种]并发语言;我的意思是在 该语言是编程语言的一部分。它们不属于我们 到操作系统。这就是语言的真正问题所在 像java和C++一样,线程不是在编程中。 语言;线程是操作系统中的一些东西 它们继承了操作系统中的所有问题。什么之中的一个 问题是内存管理系统的粒度

他还谈到了线程管理的问题,以及线程管理与语言和操作系统之间的这种脱节的关系。然后接着说Erlang之所以能够利用多核技术,是因为它可以“直接”管理核心,而根本不使用线程?或者是对他的理解有误,或者是在过去的8年里出现了一种或多种新语言来挑战Erlang


非常感谢您提供的任何参考或评论,这些参考或评论可能会对这一问题有所帮助。

Erlang VM生成操作系统线程(默认情况下,每个CPU核心一个),并且它们运行进程调度器。(VM还可以为IO操作、驱动程序和NIF生成更多线程,但它们不运行Erlang代码。)调度器在Erlang进程中调度代码的执行。与OS进程和OS线程相比,每个Erlang进程(可以而且应该)都非常轻量级,并且彼此完全分离。它允许使用多核硬件进行简单、安全、健壮和优雅的独特应用程序设计。有关将Erlang进程映射到核心的更多信息,请参阅其他问题。有关调度如何工作的详细说明,请参阅blog。

还没有看到您从中得出的结论,但他的意思可能是Erlang程序可以很好地利用多核系统,而无需程序员使用线程;程序员看不到线程。Erlang本身应该使用线程来充分利用内核。你能谈谈与其他语言(如Scala、Go、Close)的区别吗?你说VM生成OS线程(默认情况下每个CPU内核一个)这与Scala、Go或Close中处理内核的方式类似吗?