gpt4 book ai didi

linux - 进程和线程在 Linux 中有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 01:25:41 29 4
gpt4 key购买 nike

我读到进程和线程在 Linux 中是同一回事,例如在这个 question 中它说:

There is absolutely no difference between a thread and a process on Linux.

但是我不明白进程和线程怎么可能是同一个意思。我的意思是线程是由 CPU 执行的,而进程只是线程的“外壳”,它允许线程共享内存。此图显示进程与其线程之间的关系:

enter image description here

很明显进程和线程不是同一回事!

最佳答案

Linux 过去并没有对 (POSIX) 线程提供特殊支持,它只是将它们视为与其他共享地址空间以及一些其他资源(文件描述符、信号操作等)的进程"过程”。

该实现虽然优雅,但使 POSIX 线程所需的某些东西变得困难,因此 Linux 最终获得了对线程的特殊支持,您的前提现在不再成立。

尽管如此,进程和线程仍然都表示为内核中的任务(但现在内核也支持将这些任务分组到线程组中,以及用于处理这些任务的 API ((tgkill, tkill, exit_group, ...)).

您可以用谷歌搜索 LinuxThreads 和 NPTL threads 以了解有关该主题的更多信息。

关于linux - 进程和线程在 Linux 中有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44544413/

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