epub.com)
1.3 多线程技术
传统操作系统中的单线程进程由进程控制块和用户地址空间、以及管理进程执行的调用/返回行为的系统堆栈或用户堆栈构成。如果把进程的管理和执行相分离,进程作为操作系统中进行保护和资沮分配的单位,允许一个进程中包含有多个可并发执行的控制流,这些控制流切扒时不必通过进程调度,
通信时可以直接借助于共享的内存区,这就形成了多线积进程。下图单线程进程和多线程进程的模型。
目前,大多数操作系统都采用多线内核模型,支持多线程(结构)进程,如:
Solaris2.x, Mach2.6,05/2, windowsNT,Chorus等。因而,对于应用软件的开发来说,出现了另外一种设计思路,即并发多线程程序设计的方法。合理的多线程软件结构,可以使得系统性能获得较大提高,具体表现在:
1.改进程序结构。对许多程序来说,如果把程序分成多个独立或半独立的执行单元,而不是把程序设计成一个单一的复杂流程,将使程序有更高效的结构。
2.快速线程切换,改进程序的实时响应能力。多个服务器程序的任务能够单独以线程的方式执行,而线程的切换可以在同一个进程内进行,不需要在应用程序中维护人为的切换界面。客户程序也不用担心它们的请求会由于其他客户程序的请求所要时间太长而别拒绝。
3.减少(系统)管理开销,(线程)通信易于实现,节省内存空间。
4.并行程度提高。在单个处理器上运行一个多线程进程,系统将在多个线程之间切换处理器资源,即轮流为这些线程分配时间片,也就是并发执行。
2.1 课题的研究背景与意义
2.1.1 课题的研究背景
以往我们开发的程序大多是单线程的,即一个程序只有一条从头至尾的执行线索。然而现实世界中的很多过程都具有多条线索同时动作的特性。例如,我们可以一边看电视,一边活动胳膊,如果不容许这样做,我们会感觉很难受。再如一个网络服务器可能需要同时处理多个客户机的请求等。
Java语言的一大特性就是内置对多线程的支持。多线程是指同时存在几个执行体,按几条不同的执行线索共同
工作的情况,它使得编程人员可以很方便地开发出具有多线程功能、能同时处理多个任务的功能强大的应用程序。虽然执行线程给人一种几个事件同时发生的感觉,但这只是一种错觉,因为我们的
计算机在任何给定的时刻只能执行那些线程中的一个。为了建立这些线程正在同步执行的感觉。Java快速地把控制从一个线程切换到另一个线程。
多个线程的执行是并发的,也就是在逻辑上"同时",而不管是否是物理上的"同时"。如果系统只有一个CPU,那么真正的"同时"是不可能的,但是由于CPU的速度非常快,用户感觉不到其中的区别,因此我们也不用关心它,只需要设想各个线程是同时执行即可。
自从"多线程下载"技术发明以来,这项技术得到前所未有的关注已是不争的事实。在"网络蚂蚁"软件流行开后,许多下载软件也都纷纷效仿,是否具有"多线程下载"技术、甚至能支持多少个下载线程都成了人们评测下载软件的要素。"多线程下载"的基础是WEB服务器支持远程的随机读取,也即支持"断点续传"。这样,在下载时可以把文件分成若干部分,每一部分创建一个下载线程进行下载。
2.1.2课题的研究意义
多线程和传统的单线程在程序设计上最大的区别
相关热词:javajava 下载 技术 论文