.NET多线程小记(1):进程、线程、纤程

进程

进程代表了操作系统上运行着的一个应用程序。进程拥有自己的程序块,拥有独占的资源和数据,并且可被操作系统来调度。即使同一个应用程序,当被强制多次启动时,也会被安装到不通的进程之中单独运行。

.NET多线程小记(1):进程、线程、纤程

线程

线程有时候也被称为微进程或者轻量级进程,它的概念和进程十分相似,是一个可以调度的单元,并且维护自己的堆栈和上下文环境。线程是附属于进程的,一个进程可以包含一个或者多个线程,并且同一个进程内的多个线程共享一块内存块和资源。一个线程是一个操作系统可调度的基本单元,但同时它的调度受限于包含该线程的进程,也就是说操作系统首先决定下一个执行的进程,进而才会调度该进程内的线程。

线程和进程的区别

线程和进程的最大的区别在于隔离性。每个进程都被单独地隔离,拥有自己的内存块、独占的资源及运行数据,一个进程的崩溃不会影响到其他进程,而进程之间的交互也是相当困难的。和进程不同,同一进程内的说有线程共享资源和内存块,并且一个线程可以访问、结束同一进程内的其它线程。

纤程

线程是微软公司提出的轻量级线程的概念,一个纤程拥有自己的栈和寄存器状态。一个线程可以包含多个纤程,和线程由操作系统调用有所不同的是,线程内纤程的调度完全由程序员自己控制,操作系统的内核完全不会知道纤程的存在。

本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2009/11/06/1597437.html如需转载请自行联系原作者


王德水

上一篇:java设计模式6--适配器模式(Adapter )


下一篇:动态规划法(七)鸡蛋掉落问题(二)