转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
多线程技术在Delphi数据库编程中的应用         ★★★★

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:652 更新时间:2009/4/23 18:25:27
   摘要:本文介绍了线程和多线程程序设计的概念和基本思想,最后用航班优化编排的实例,说明了多线程程序设计的方法。

  关键词:线程、并发性、多线程程序设计、航班优化编排

  引言

  在传统上,并发多任务的实现采用的是在操作系统级运行多个进程,由操作系统按照一定的策略(优先级、循环等),调度各个进程的执行,以最大限度的利用计算机的各种资源。在这种实现方法中最基本的调度单位是操作系统级上的进程。由于各个进程拥有自己独立的运行环境(寄存器和地址空间等)。进程与进程之间的耦合关系差,并发性粒度过于粗糙,并发实现也不太容易。所以,除非特殊需要,一般的应用设计都不采用这种技术。

  为了克服这些问题,近年来逐步发展了并发多线程的程序设计技术。从并发Ada、并发C等各种并发多任务的程序设计语言(这些语言中采用的虽然不是线程这个术语,但其基本思想是一样的),到Mach、Chorus、Solaris System等各种采用了线程技术的系统,多线程技术得到了迅速发展和日益广泛的应用。IEEE也推出了有关多线程程序设计的标准POSIX1003.4a。特别是在Window NT和Windows 98等流行操作系统中,采用了线程作为基本的调度单位,其API中也提供了有关线程操作的用户程序接口。所有这些无疑都会促进多线程技术在程序设计中被日益广泛的采用。

  多线程技术的概念

  所谓线程(或称线索,thread),指程序中的以单一的顺序控制流。线程按顺序执行,即在一个线程中,一个时刻只能由一个执行点。显然,按传统方法设计的程序,无论是单道执行的程序,还是由多个进程并发执行的多道程序,就每个程序本身而言,都是由单线程组成的。

  多线程程序设计,就是使单个程序中包含并发执行的多个线程。当多线程程序执行时,在该程序对应的进程中就有多个控制流在同时运行,即具有并发执行的多个线程。在一个进程中包含并发执行的多个控制流,而不是把多个控制流一一分散在多个进程中,这是多线程程序设计与并发多进程程序设计截然不同之处。这就决定了二者之间虽然在概念上有许多相通之处,但实现方法则是完全不同。


图1 进程之间的关系

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

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


[系统软件]InstallShield Express for delphi制作安装程序定…  [常用软件]InstallShield Express制作Delphi数据库安装程序
[Delphi程序]为什么选择Delphi.Net ?  [Delphi程序]《关于VisiBroker For Delphi的使用》(4)
[Delphi程序]Delphi 程序员代码编写标准指南  [Delphi程序]转贴:Conversion to Delphi 6: Missing unit Pro…
[Delphi程序]Borland Delphi 9 的新特性  [Delphi程序]Delphi 键盘码表
[Delphi程序]Chuck Jazdzewski的离开意味着Delphi的终结吗?  [Delphi程序]Delphi Access violations 问题的解决之道
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台