我被问到了这个面试问题。我回答说线程是进程的一部分,但面试官并不同意。这很令人困惑,我找不到任何清晰的答案。
我被问到了这个面试问题。我回答说线程是进程的一部分,但面试官并不同意。这很令人困惑,我找不到任何清晰的答案。
每个进程都是一个线程,但并不是每个线程都是进程。
线程只是一系列独立的操作序列。进程有额外的上下文。
一个进程可以包含多个线程
。2.需要注意的是,线程可以做任何进程可以做的事情。 但是,由于一个进程可以由多个线程组成,所以线程可以被认为是“轻量级”进程。因此,线程和进程之间的基本区别在于它们用于完成的工作。线程用于小任务,而进程用于更“重量级”的任务-基本上是应用程序的执行。
线程和进程之间的另一个区别是,同一进程中的线程共享相同的地址空间,而不同进程则没有。这允许线程从相同的数据结构和变量中读取和写入,并促进线程之间的通信。进程之间的通信-也称为IPC或进程间通信-非常困难且资源密集。
线程的本质高度依赖于系统。例如,一些系统将线程实现为操作系统的一部分。其他系统通过运行时库实现线程。进程本身管理其自己的线程(而不是操作系统),对于不同的进程,管理可能会有所不同(例如,Java线程与Ada线程的实现方式不同)。
在操作系统调度的线程中,线程和进程是不同的术语。进程是具有多个可调度执行线程的地址空间。
在运行时库调度的线程中,进程就是一个线程。