进程和线程有什么区别?
进程和线程之间的技术区别是什么?
我感觉像'过程'这样的词被过度使用,并且还有硬件和软件线程。 Erlang等语言中的轻量级过程如何? 有一个明确的理由使用一个术语而不是另一个术语?
进程和线程都是独立的执行序列。 典型的区别是线程(同一进程的)在共享内存空间中运行,而进程在单独的内存空间中运行。
我不确定你可能指的是什么“硬件”与“软件”线程。 线程是一种操作环境功能,而不是CPU功能(尽管CPU通常具有使线程高效的操作)。
Erlang使用术语“进程”,因为它不公开共享内存多进程编程模型。 将它们称为“线程”意味着它们共享内存。
处理
每个进程都提供执行程序所需的资源。 进程具有虚拟地址空间,可执行代码,系统对象的打开句柄,安全上下文,唯一进程标识符,环境变量,优先级类别,最小和最大工作集大小以及至少一个执行线程。 每个进程都使用单线程启动,通常称为主线程,但可以从其任何线程创建其他线程。
线
线程是可以安排执行的进程中的实体。 进程的所有线程共享其虚拟地址空间和系统资源。 另外,每个线程维护异常处理程序,调度优先级,线程本地存储,唯一线程标识符以及系统将用于保存线程上下文直到它被调度的一组结构。 线程上下文包括线程的一组机器寄存器,内核堆栈,线程环境块以及线程进程地址空间中的用户堆栈。 线程也可以有自己的安全上下文,可用于模拟客户端。
在MSDN上找到这里:
关于进程和线程
Microsoft Windows支持抢先式多任务处理,这可以创建同时执行多个进程中多个线程的效果。 在多处理器计算机上,系统可以同时执行与计算机上的处理器一样多的线程。
处理:
线:
我借鉴了知识任务中的以上信息! 博客 。
链接地址: http://www.djcxy.com/p/9407.html上一篇: What is the difference between a process and a thread?
下一篇: How is calling module and function by string handled in python?