什么是线程(线程)?
进程中的所有线程具有相同的内存视图
假设你正在读一本书,你现在想休息一下,但是你想要能够从你停止的确切位置回来并恢复阅读。一种实现方式是通过记下页码,行号和字数。所以你读书的执行环境是这3个数字。
如果你有一个室友,她也使用相同的技巧,她可以在你不使用书本的同时拿书,并从她停下来的时候继续阅读。然后你可以把它拿回来,并从你那里恢复。
线程工作方式相同。 CPU正在给你一个错觉,它同时进行多次计算。它通过在每个计算上花费一点时间来做到这一点。它可以做到这一点,因为它具有每个计算的执行上下文。就像你可以和你的朋友分享一本书,许多任务可以共享一个CPU。
在更技术层面上,执行上下文(因此是一个线程)由CPU的寄存器值组成。
最后:线程与进程不同。线程是一个执行的上下文,而一个进程是一堆与计算相关的资源。进程可以有一个或多个线程。
说明:与进程相关联的资源包括内存页面(进程中的所有线程具有相同的内存视图),文件描述符(例如,开放套接字)和安全凭证(例如,启动该进程的用户的ID处理)。
什么是进程(进程)?
程序的执行实例称为进程。
每个进程提供执行程序所需的资源。
进程具有虚拟地址空间,可执行代码,
打开系统对象的句柄,一个安全上下文,
一个独特的过程,pid标识符,环境变量,
优先级,最小和最大工作集大小,
和至少一个执行线程。
每个进程都以一个线程开始,
经常称为主线程,但可以创建额外的
线程从任何线程。
进程与线程的区别?
线程共享创建它的进程的地址空间; 进程有自己的地址空间。
线程可以直接访问其进程的数据段; 进程具有自己的父进程的数据段副本。
线程可以直接与其进程的其他线程通信; 进程必须使用进程间通信来与兄弟进程进行通信。
新线程很容易创建; 新进程需要父进程的重复。
线程可以对相同进程的线程进行相当的控制; 流程只能控制子进程。
对主线程的更改(取消,优先级更改等)可能会影响进程的其他线程的行为; 对父进程的更改不会影响子进程。
~来自尼玛星球的光军(供参考)