- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序中单个顺序的流控制称为线程
11.1 线程的概念 进程和线程的概念: 随着计算机的飞速发展,个人计算机上的操作系统也纷纷采用多任务和分时设计,将早期只有大型计算机才具有的系统特性带到了个人计算机系统中。一般可以在同一时间内执行多个程序的操作系统都有进程的概念。一个进程就是一个执行中的程序,而每一个进程都有自己独立的一块内存空间、一组系统资源。在进程概念中,每一个进程的内部数据和状态都是完全独立的。Java程序通过流控制来执行程序流,程序中单个顺序的流控制称为线程,多线程则指的是在单个程序中可以同时运行多个不同的线程,执行不同的任务。多线程意味着一个程序的多行语句可以看上去几乎在同一时间内同时运行。 线程的概念 线程与进程的区别 线程与进程相似,是一段完成某个特定功能的代码,是程序中单个顺序的流控制;但与进程不同的是,同类的多个线程共享一块内存空间和一组系统资源,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。所以系统在产生一个线程,或者在各个线程之间切换时,负担要比进程小的多,正因如此,线程被称为轻负荷进程(light-weight process)。一个进程中可以包含多个线程。一个线程是一个程序内部的顺序控制流。主要区别如下: 1. 进程:每个进程都有独立的代码和数据空间(进程上下文) ,进程切换的开销大。 2. 线程:轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。 3. 多进程:在操作系统中,能同时运行多个任务程序。 4. 多线程:在同一应用程序中,有多个顺序流同时执行。 1) 一个虚拟处理机 2) CPU执行的代码 3)代码操作的数据 代码可以或不可以由多个线程共享,这时数据是独立的。两个线程如果执行同一个类的实例代码,则它们可以共享相同的代码。 类似地,数据可以或不可以由多个线程共享,这时代码是独立的。两个线程如果共享对一个公共对象的存取,则它们可以共享相同的数据。 一个线程由三个主要部分组成: 11.1 线程的概念 使用多线程进行程序设计具有如下优点: ???? 1)多线程编程简单,效率高(能直接共享数据和资源,多进程不能) ??? ?? 2)适合于开发服务程序(如Web服务,聊天服务等) ????3)适合于开发有多种交互接口的程序(如聊天程序的客户端,网络下载工具) ???? 4)减轻编写交互频繁、涉及面多的程序的困难(如监听网络端口) ???? 5)程序的吞吐量会得到改善(同时监听多种设备,如网络端口、串口、并口以及其他外设) ???????6)有多个处理器的系统,可以并发运行不同的线程(否则,任何时刻只有一个线程在运行) 线程举例: Hotjava浏览器就是一个多线程应用的实例。当下载一个应用程序或图片时,可以同时进行其他任务,例如播放动画或声音的应用程序、打印某些内容、进行排序或者其他工作。 聊天室(多人同时聊) Web服务器 ,如: Tomcat、Resin、WebSphere 数据库系统,如:MSSQLServer、Oracle
文档评论(0)