标签:使用 strong 数据 问题 时间 window windows 程序
线程有时候可以被称为微进程或轻量级进程,它的概念和进程十分相似,是一个可以被调度的单元,并且维护自己的堆栈和上下文环境,线程是附属进程的,一个进程可以包含1个或者多个线程,并且同一进程内的多个线程共享一块内存快和资源,一个线程是一个操作系统可调度的基本单元,但同时它的调度受限于包含该线程的进程,也就是说操作系统首先决定了下一个执行的进程,进而才会调度该进程内的线程
线程和进程最大的区别在于隔离性的问题,每个进程都被单独地隔离,拥有自己的内存快,独占的资源及运行数据,一个进程的崩溃不会影响到其他进程,而进程间的交互也是相当困难的,和进程不同,同一进程内的所有线程共享资源和内存,并且一个线程可以访问,结束同一进程内的其他线程
按照常规分类,线程调度可以分为抢占式调度和非抢占式调度两种方法
1)抢占式调度
抢占式调度是指每个线程都只有极少的运行时间(在windows NT内核模式下这个时间不会超过20ms),而当时间用完时该线程就会被强制暂停,保存上下文并把运行权交给下一个线程,这样调度的结果就是所有线程都在快速地切换运行,使得使用者感觉所有的线程在并行运行
2)非抢占式调度
非抢占式调度是指某个线程在运行时不会被操作系统强制暂停,它可以持续地运行直至运行告一段落并主动地交出运行权,再这样的调度模式下,线程的运行就完全是单队列的,并且可能产生恶意程序长期霸占运行权的情况。
注意:现在很多的操作系统都采用抢占式和非抢占式模式,对于那些优先级相当高的线程,操作系统采用非抢占式来充分的时间运行,对于普通的线程,则采用抢占式模式来快速切换执行
标签:使用 strong 数据 问题 时间 window windows 程序
原文地址:http://www.cnblogs.com/emilwang/p/3884226.html