linux - X个线程是通过X个进程实现的吗?

标签 linux windows multithreading process operating-system

我知道存在多线程与多处理方法。
但我的印象是线程是由操作系统实现为进程的。因此,线程模型只是进程之上的编程构造。
至少在Java中(因此是标签,尽管这个问题与语言无关)我知道线程是由linux作为进程实现的 这不是一般情况吗?它取决于操作系统吗?

@SotiriosDelimanolis 在评论中询问 Java 的更新:One to one mapping of Java Thread to Linux thread (LWP)

最佳答案

现代 Java 版本中的线程是“ native ”的,由运行 JVM 的操作系统实现、调度和处理。所以答案取决于您使用的操作系统。

Distinguishing between Java threads and OS threads?

编辑

一般来说,不仅仅是 java,创建线程的规则是由所使用的语言、操作系统和语言库(或它们的某种组合)决定的。

但总的来说,在现代操作系统上,出于性能原因,多个线程通常共享一个进程。线程有时被称为轻量级进程

This link概述了用于为各种操作系统编写多线程应用程序的线程和 C 库。

关于linux - X个线程是通过X个进程实现的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26851083/

相关文章:

c# - 如何编写可中止的同步方法?

multithreading - COM接口(interface): Using STA instead of MTA

linux - Nodemon + 永远不检测文件更改

c - 使用 xlib 窗口总是在最上面

python - 类变量和线程 - 意外的行为

c++ - 使用 Visual Studio C++ 找到的文件大小不正确

windows - 从 babun 主目录创建到其他路径的符号链接(symbolic link)

linux - GitHub 帮助 - 将文件夹推送到存储库

linux - 使用 Linux GPU 和 CPU 的 Windows 计算机

c# - 找不到方法 : 'Void System.Diagnostics.Tracing.FrameworkEventSource.BeginGetResponse(System.Object, System.String)'