多线程技术在Delphi数据库编程中的应用

http://tech.ddvip.com   2006年07月31日    社区交流

本文详细介绍多线程技术在Delphi数据库编程中的应用

  图1 进程之间的关系

  图2 线程之间的关系

  图1和图2分别示意了把一个任务按两个并发进程和两个并发线程分解后的情况。比较这两张图中进程与进程之间、线程与线程之间的关系可以看出,进程之间的关系比较疏远,各个进程是在自己独有的地址空间内执行,不但寄存器和堆栈是独有的,动态数据堆、静态数据区和程序代码也相互独立。而线程之间的关系则要紧密的多。虽然各线程为保持自己的控制流而独有寄存器和堆栈,但由于各线程从属于同一进程,它们共享同一地址空间,所以动态堆、静态数据区及程序代码则是各线程共有的。

  许多多任务操作系统限制用户能拥有的最多进程数目,如很多Unix版本的典型值为20个左右,这对许多并发应用来说远远不够。而对多线程技术来说,不存在这样的数目限额。

  多线程程序设计

  线程是系统调度的基本单位,是CPU的一条执行路径。一个应用程序实例至少有一个线程,即程序的基本线程或主线程。用户可以根据需要同时创建若干个线程,让一个程序在同一时刻运行多个线路。线程间独立运行,每个线程都轮流占用CPU的运行时间和资源,即将CPU的时间分片,每一个时间片给不同的线程使用。这样,操作系统将不断的将线程挂起、唤醒、再挂起、再唤醒,直至完成整个任务。

  当程序在运行时,线程被加载到内存中等待执行。每个线程都可能包含该应用程序的数据、代码或者其他操作系统的资源。一个线程执行程序的一部分,所有线程都能够访问进程的全局变量。

来源:计算机与信息技术    作者:张华 卢慧    责编:豆豆技术应用

正在加载评论...