Linux中的进程和线程是如何相同的?

我已经读过一个进程和一个线程在Linux中是一样的,例如在这个问题中它说:

Linux上的线程和进程完全没有区别。

但我不明白一个过程和一个线程怎么可能意味着同样的事情。 我的意思是一个线程是由CPU执行的,一个进程只是线程的“机箱”,它允许线程共享内存。 该图显示了进程与其线程之间的关系:

在这里输入图像描述

很显然,一个过程和一个线程并不意味着同样的事情!

Linux并没有使用对(POSIX)线程的特殊支持,而是简单地将它们视为与其他“进程”共享其地址空间以及其他一些资源(文件描述符,信号动作,…)的进程。

这个实现虽然优雅,却使POSIX对线程所要求的某些事情变得困难,所以Linux最终获得了对线程的特殊支持,而且现在的情况已经不再是真实的了。

尽管如此,进程和线程在内核中仍然被表示为任务(但是现在内核已经支持将这些任务分组到线程组以及用于处理这些任务的API(( tgkilltkillexit_group ,…))。

您可以谷歌LinuxThreads和NPTL线程了解更多关于这个话题。