一、线程的概念
数据库系统中线索(Thread)的概念来源于操作系统中“线程”(Thread)的概念。这里先介绍操作系统中线程的概念。
随着多处理器系统以及并行计算技术的发展,进程概念被进一步细化为“任务”(Task)与“线程”的概念。
UNIX核心中最关系的概念就是进程。进程既是资源分配的最小单位也是运行的最小单位,与一个进程想联系的资源有:进程虚拟空间,进程控制块、数据段、正文段、堆栈段、共享内存、程序计数器、状态寄存器以及通用寄存器。进程建立及切换的开销很大,核心维护每一个进程的虚拟空间开销也很大。进程概念在处理微粒度问题(一个问题可划分为多个工作量很小的并行计算单位)时显得很吃力,不能充分发挥多机的优点。出于以上考虑,1988年卡内基-梅隆大学在其研制的多机操作系统MACH中实现了Task和Thread这两个概念。
他们将进程的概念一分为二:Task是申请资源的最小单位,而Thread是调度和运行的最小单位。一个Task中可有多个Thread,这些Thread共享Task的所有资源,共同完成一个任务。一个Thread只能运行在某个Task中。在多处理机上,这些Thread可真正的并行运行。