- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12-Java多线程技术基础方案
《Java程序设计》 12. Java多线程技术基础 12.1 线程概述 12.1.1 线程和进程 12.1.2 多线程的优势 12.2 线程的创建和启动 12.2.1 继承thread类创建线程类 12.2.2 实现runnable接口创建线程类 12.2.3 使用Callable和Future创建线程 12.2.4 三种方式所创建线程的对比 12.3 线程的生命周期 12.3.1 新建和就绪状态 12.3.2 运行和阻塞状态 12.3.3 线程死亡 12. 多线程技术 前面编写的Java程序(第9~11章的GUI程序除外,它们有内建的多线程支持),都是单线程(Thread),只有一条顺序执行流:程序从main方法开始执行,依次向下执行每行代码,如果程序执行某行代码时遇到了阻塞,则程序将会停滞在该处。 单线程的程序往往功能非常有限,例如开发一个简单的服务器程序,这个服务器程序需要向不同的客户端提供服务时,不同的客户端之间应该互不干扰,否则会让客户端感觉非常沮丧。 多线程听上去是非常专业的概念,其实非常简单——单线程的程序(前面介绍的绝大部分程序)只有一个顺序执行流,多线程的程序则可以包括多个顺序执行流,多个顺序流之间互不干扰。可以这样理解:单线程的程序如同只雇佣一个服务员的餐厅,他必须做完一件事情后才可以做下一件事情;多线程的程序则如同雇佣多个服务员的餐厅,他们可以同时做多件事情。 12. 多线程技术 如下图所示的餐厅点餐台,多个服务员从同一个餐台取餐(类似于多个线程共享系统资源),每个服务员为一队顾客服务。 Java语言提供了非常优秀的多线程支持,程序可以通过非常简单的方式来启动多线程。本章将会详细介绍Java多线程编程的相关方面,包括创建、启动线程、线程的生命周期等。 12.1 线程概述12.1.1 线程和进程 几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程(Process)。当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。 几乎所有的操作系统都支持进程的概念,所有运行中的任务通常对应一个进程。当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位。 12.1 线程概述12.1.1 线程和进程 一般而言,进程包含如下三个特征。 独立性:进程是系统中独立存在的实体,它可以拥有自己独立的资源,每一个进程都拥有自己私有的地址空间。在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间。 动态性:进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合。在进程中加入了时间的概念。进程具有自己的生命周期和各种不同的状态,这些概念在程序中都是不具备的。 并发性:多个进程可以在单个处理器上并发执行,多个进程之间不会互相影响。 12.1 线程概述12.1.1 线程和进程 12.1 线程概述12.1.1 线程和进程 大部分操作系统都支持多进程并发运行,现代的操作系统几乎都支持同时运行多个任务。 但事实的真相是,对于一个CPU而言,它在某个时间点只能执行一个程序,也就是说,只能运行一个进程,CPU不断地在这些进程之间轮换执行。那为什么用户感觉不到任何中断现象呢?这是因为CPU的执行速度相对人的感觉来说实在是太快了(当然,如果启动的程序足够多,用户依然可以感觉到程序的运行速度下降),所以虽然CPU在多个进程之间轮换执行,但用户感觉到好像有多个进程在同时执行。 12.1 线程概述12.1.1 线程和进程 多线程则扩展了多进程的概念,使得同一个进程可以同时并发处理多个任务。线程(Thread)也被称作轻量级进程(Lightweight Process),线程是进程的执行单元。就像进程在操作系统中的地位一样,线程在程序中是独立的、并发的执行流。当进程被初始化后,主线程就被创建了。对于绝大多数的应用程序来说,通常仅要求有一个主线程,但也可以在该进程内创建多条顺序执行流,这些顺序执行流就是线程,每个线程也是互相独立的。 线程是进程的组成部分,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程可以拥有自己的堆栈、自己的程序计数器和自己的局部变量,但不拥有系统资源(CPU时钟周期、地址空间等),它与父进程的其他线程共享该进程所拥有的全部资源。因为多个线程共享父进程里的全部资源,因此编程更加方便;但必须更加小心,因为需要确保线程不会妨碍同一进程里的其他线程。 12.1 线程概述12.1.1 线程和进程 线程可以完成一定的任务,可以与其他线程共享父进程中的共享变量及部分环境,相互之间协同来完成进程所要完成的任务。 线程是独立运行的,它
您可能关注的文档
- 11集线器规范1方案.doc
- 11酚和醌方案.ppt
- 11轴、联轴器方案.ppt
- 11颈部疾病病人的护理《外科护理学》方案.ppt
- 12-15机械工程材料课程复习方案.ppt
- 11课万千气象的宋代社会风貌方案.ppt
- 12-个人求职简历方案.ppt
- 12.1杜康酿酒话乙醇方案.ppt
- 12.2热量与热值(沪粤版-九年级上册)方案.ppt
- 12.2热量和热值(沪粤版)方案.ppt
- 轻食市场行业分析报告总结.docx
- 部编版一年级上册道德与法治第四单元《天气虽冷有温暖》测试卷带答案(精练).docx
- 部编版一年级上册道德与法治第四单元《天气虽冷有温暖》测试卷带答案(巩固).docx
- 轻食市场调查分析.docx
- 部编版一年级上册道德与法治第四单元《天气虽冷有温暖》测试卷带答案(培优b卷).docx
- 轻食店项目计划书.docx
- 部编版一年级上册道德与法治第四单元《天气虽冷有温暖》测试卷精品【夺冠系列】.docx
- 部编版一年级上册道德与法治第四单元《天气虽冷有温暖》测试卷精品【夺冠系列】.docx
- 部编版一年级上册道德与法治第四单元《天气虽冷有温暖》测试卷精品【夺冠系列】.docx
- 部编版一年级上册道德与法治第四单元《天气虽冷有温暖》测试卷精品【夺冠系列】.docx
文档评论(0)