问题标签 [lightweight-processes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6413 浏览

multithreading - 如果有的话,Erlang 进程如何映射到内核线程?

Erlang 以能够支持许多轻量级进程而闻名。它可以这样做是因为这些不是传统意义上的进程,甚至不是 P 线程中的线程,而是完全在用户空间中的线程。

这很好(实际上很棒)。但是,Erlang 线程如何在多核/多处理器环境中并行执行呢?当然,它们必须以某种方式映射到内核线程才能在单独的内核上执行吗?

假设是这种情况,这是如何完成的?许多轻量级进程是否映射到单个内核线程?

或者有没有其他方法可以解决这个问题?

0 投票
4 回答
829 浏览

architecture - 除了 Erlang,还有哪些基于“绿色进程”的系统?

我正在阅读Green Thread(维基百科)上的这个信息页面,我想知道:除了 Erlang 之外,还有哪些其他编程系统依赖于“绿色进程”?

编辑:“绿色线程!=绿色进程”

基于绿色工艺

  • 二郎
  • 地狱火

基于绿线

基于本机进程

  • C、C++

更新:没有人直接回答这个问题,因此我接受了一个答案,该答案为我提供了有关一般绿色流程的更多信息。

0 投票
3 回答
2643 浏览

multithreading - “绿色线程”和 Erlang 的进程有什么区别?

在阅读了 Erlang 的轻量级进程后,我非常确定它们是“绿色线程”。直到我读到绿色线程和 Erlang 的进程之间存在差异。但我不明白。

实际的区别是什么?

0 投票
5 回答
4032 浏览

c# - .NET 中的 Erlang 风格的轻量级进程

有没有办法在 .NET 中实现 Erlang 风格的轻量级进程?

我发现了一些实现 Erlang 消息传递模型(参与者模型)的项目。例如,阿克苏姆但是我对轻量级流程的实现一无所知。我的意思是在单个操作系统线程或操作系统进程的上下文中运行的多个进程。

0 投票
3 回答
8454 浏览

multithreading - Haskell 轻量级线程开销和多核使用

我一直在阅读“Real World Haskell”一书,关于并发和并行性的章节。我的问题如下:

  • 由于 Haskell 线程实际上只是一个“真实”操作系统线程中的多个“虚拟”线程,这是否意味着创建大量线程(如 1000 个)不会对性能产生重大影响?即,我们可以说创建 Haskell 线程所产生的开销forkIO(几乎)可以忽略不计吗?如果可能,请提供实际示例。

  • 轻量级线程的概念难道不会阻止我们利用多核架构的好处吗?据我了解,两个 Haskell 线程不可能在两个单独的内核上同时执行,因为从操作系统的角度来看,它们实际上是一个单线程。或者 Haskell 运行时是否做了一些巧妙的技巧来确保可以使用多个 CPU?

0 投票
2 回答
1492 浏览

linux-kernel - linux内核如何在多芯片多核SMP系统上调度轻量级线程?

我正在使用轻线程运行并行算法,我想知道当系统提供多个内核和多个芯片时如何将这些分配给不同的内核。线程是否分配给单个芯片,直到芯片上的所有内核都用完?是否将线程分配给不同芯片上的内核以便更好地在芯片之间分配工作?

0 投票
8 回答
21985 浏览

multithreading - 轻量级进程和线程有什么区别?

我在这里找到了问题的答案。但我不明白答案中的一些想法。例如,轻量级进程被称为与其他进程共享其逻辑地址空间。这是什么意思?我可以理解 2 个线程的相同情况:它们都共享一个地址空间,因此它们都可以从 bss 段中读取任何变量(例如)。但是我们有很多不同的进程,有不同的 bss 部分,我不知道如何共享所有这些。

0 投票
1 回答
225 浏览

pthreads - 为什么 NPTL 中的两个线程在 Ubuntu12.04 中有不同的 pid

我在 Ubuntu 12.04 LTS 服务器 x64(3.2 内核)中测试了一些代码,我认为它正在使用 NPTL。

当我跑步时

我明白了

以下是测试代码。我用 gcc -g -Wall -pthread 编译它

当我运行程序时,似乎一切都在意料之中:两个线程具有相同的 pid

但是在 htop (一个类似于 top 的工具,你可以通过 apt-get 得到它)我看到这个:两个线程有​​不同的 pid

如果我杀死 pid 2108,该进程将被杀死

如果我通过 gdb 运行程序,我可以看到LWP

我认为 NPTL 的线程共享一个 PID,而 LWP 用于内核 2.6 之前的 LinuxThreads。上面好像NPTL下还在用LWP。我对吗?我想知道 NTPL 和 LWP 的真相。

谢谢。

0 投票
1 回答
575 浏览

multithreading - 在多对一线程模型中,映射实际何时开始?

根据我对多对一模型的理解,所有用户线程都绑定到 LWP,然后绑定到内核线程。线程库负责将线程调度到 LWP 上,内核只看到一个单线程应用程序。

那么,映射是在程序启动时发生(执行主线程)还是发生在程序执行之间的某个地方?

0 投票
3 回答
2006 浏览

java - 为什么线程被称为轻量级进程?

在浏览大多数 Java 教程时,他们提到线程是轻量级进程。我知道线程创建中发生了什么,但我没有得到线程的定义。在stackoverflow中大部分时间也回答了这个问题。但这也让我感到困惑。无法理解“轻量级过程”背后的真正想法。谁能用最简单的方式解释“线程是轻量级进程”的含义?