使用java实现面向对象 第七章
第七章 多线程
一.Thread类和Runnable接口
1.在java.lang包中定义了Runnable接口和Thread类。
Runnable接口中只定义了一个方法,它的格式为:
public abstract void run()
2.这个方法要由实现了Runnable接口的类实现。Runnable对象称为可运行对象,一个线程的运行就是执行该对象的run()方法。
3.Thread类实现了Runnable接口,因此Thread对象也是可运行对象。同时Thread类也是线程类。
4.target为线程运行的目标对象,即线程调用start()方法启动后运行那个对象的run()方法,该对象的类型为Runnable,若没有指定目标对象,则以当前类对象为目标对象;name为线程名,group指定线程属于哪个线程组。
二.线程的创建
线程运行的代码就是实现了Runnable接口的类的run()方法或者是Thread类的子类的run()方法,因此构造线程体就有两种方法:
继承Thread类并覆盖它的run()方法;
实现Runnable接口并实现它的run()方法。
继承Thread类创建线程
通过继承Thread类,并覆盖run()方法,这时就可以用该类的实例作为线程的目标对象。下面的程序定义了SimpleThread类,它继承了Thread类并覆盖了run()方法。
实现Runnable接口创建线程
可以定义一个类实现Runnable接口,然后将该类对象作为线程的目标对象。实现Runnable接口就是实现run()方法。
三.线程的生命周期
线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。
新建:创建一个线程
就绪:等待启动
运行:运行输出
阻塞:从运行返回阻塞状态
死亡:程序结束
转载于:https://www.cnblogs.com/ppdpp/p/7635605.html
使用java实现面向对象 第七章相关推荐
- 使用java实现面向对象编程第十章嗖嗖移动业务大厅项目_ACCP6.0使用Java实现面向对象编程-第一章.ppt...
ACCP6.0使用Java实现面向对象编程-第一章 练习--用类图设计Dog和Penguin类 需求说明: 运用面向对象思想抽象出Dog类和Penguin类,画出对应类图 根据类图编写Dog类和Pen ...
- java学习笔记-第七章:面向对象编程(基础部分)
第七章:面向对象编程(基础部分) 总体内容 类与对象 引出类与对象 类与对象概述 类与对象的关系示意图 属性概念及其细节 类与对象快速入门案例 对象内存布局 类与对象内存分配机制 引申:java内存的 ...
- 【JAVA SE】第七章 继承和多态
第七章 继承和多态 文章目录 第七章 继承和多态 一.继承 1.概念 2.继承的特性 2.继承关键字 3.构造器 4.子类重写父类方法的规则 二.多态 1.概念 2.多态的优点 3.多态存在的三个必要 ...
- 第七个猴子java_黑猴子的家:Java SE 练习题第七章
尾部都有答案 第七章练习题(多态) (1)下列自'关多态的叙述正确的是哪项?(选两项) A. 父类的引用指向子类的实例是一种多态 B. 子类的引用指向子类的实例是一种多态 C. 接口的引用指向实现该接 ...
- JAVA语言程序设计第七章
第七章:输入输出 7.1流式输入输出 两种基本流:InputStream(输入流), OutputStream(输出流) 根据流相对于程序的另一个端点不同可分两类: NodeStream(节点流/基层 ...
- esp8266接收到的数据如何存放到数组中_愉快地学Java语言:第七章 数组
导读 本文适合Java入门,不太适合Java中高级软件工程师.本文以<Java程序设计基础篇>第10版为蓝本,采用不断提出问题,然后解答问题的方式来讲述.本篇文章只是这个系列中的一篇,如果 ...
- 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法
第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...
- java第六、七章复习
面向对象认知概述 面向对象思想是人类最自然的一种思考方式,它将所有预处理的问题抽象为对象,同时了解这些对象具有哪些相应的属性及行为,以解决这些对象面临的一些实际问题,面向对象设计实质上就是对现实世界的 ...
- 使用java实现面向对象编程第十章嗖嗖移动业务大厅项目_ACCP6.0 S2 使用Java实现面向对象编程 第一章...
使用this调用成员方法 public void paly(int n){ health=health-n; this.print(); //this可以省略,直接调用print(): } 使用thi ...
最新文章
- another app is currently holding the yum lock;waiting for it to exit解决
- 比特率 波特率 数据传输速率 区别(转)
- 产品定义到产品推广的思路
- [Google Guava] 1.1-使用和避免null
- php的反射技术,PHP 反射使用
- 提高mysql千万级大数据SQL查询优化30条经验
- python中的魔法属性和方法
- python常见错误及基本技巧
- 计算机一级办公软件试题,计算机一级WPS模拟练习题及答案
- [论文笔记]Poly-encoders: architectures and pre-training strategies for fast and accurate multi-sentence
- 【.net core 跨平台】第一步 在Ubuntu16.04 配置.net core环境
- 前端跨域解决方案总结
- 综合评价模型的缺点_综合评价方法这么多,我该怎么选
- 黑龙江计算机比赛,信息工程学院在第十三届中国大学生计算机设计大赛黑龙江省赛中喜获佳绩...
- 中国居民身份证 算法 转 是java版本的
- 大数据与云计算技术周报(第150期)
- linux下迅雷的替代
- 微信小程序授权登陆,解密encryptedData出现乱码问题
- 免费好用的APP你值得一试
- 关于ASCII()函数
热门文章
- tableau货架图制作_举个栗子!Tableau技巧(33):实用漏斗图的三种制作方法
- era5数据内容说明_mysql数据库自带主从配置
- php文本框清除格式,php如何清除HTML格式
- jQuery获取动态创建元素的内容
- 2.封装成帧和透明传输
- C++11新特性之 可变参数模板
- bzoj 1662: [Usaco2006 Nov]Round Numbers 圆环数(枚举)
- 2017百度之星复赛:1003. Pokémon GO(递推)
- Docker Swarm 使用
- c#执行cmd命令并获取返回结果字符串