java 22 - 22 多线程之 匿名内部类的方式实现多线程
首先回顾下之前的匿名内部类:
匿名内部类的格式:
new 接口或者接口名(){
重写方法
};
本质:是该类或者接口的子类对象
匿名内部类方式使用多线程
1、new Thread(){代码…}.start();
2、new Thread(new Runnable(){代码…}).start();
例子1:继承Thread类的匿名内部类实现多线程
// 一、继承Thread类实现多线程
new Thread() {
// 线程的代码
public void run() {
for (int x = 0; x < 100; x++) {
System.out.println("Thread" + "--" + x);
}
}
}.start();// 别忘了启动线程
例子2:继承Runnable类的匿名内部类实现多线程
// 二、继承Runnable类实现多线程
new Thread(new Runnable() {
// 线程的代码
public void run() {
for (int x = 0; x < 100; x++) {
System.out.println("Runnable" + "--" + x);
}
} }) {
// 这里的代码为空
}.start();
由于继承Runnable类实现线程中,start之前的{}为空,这里在继承Thread类中是重写线程的方法的,
所以,如果两者结合起来的话,会执行Runnable还是Thread?
例子3:同时继承Runnable类和Thread类的匿名内部类来实现多线程
// 三、两者结合 new Thread(new Runnable() { public void run() {
// 填写继承Ruannble的线程代码
for (int x = 0; x < 100; x++) {
System.out.println("hello" + "--" + x);
} } }) {
// 填写继承Thread类的线程代码
public void run() {
for (int x = 0; x < 100; x++) {
System.out.println("world" + "--" + x);
}
}
}.start();
//通过运行结果可知道,这里只执行继承Thread类的代码
ps:这个开发中几乎看不到,就怕面试问到。。
如:上面那段代码会不会出错? 不会
执行的是Runnable的代码还是Thread类的代码? Thread类的代码
java 22 - 22 多线程之 匿名内部类的方式实现多线程的更多相关文章
- Java进阶(四十二)Java中多线程使用匿名内部类的方式进行创建3种方式
Java中多线程使用匿名内部类的方式进行创建3种方式 package cn.edu.ujn.demo; // 匿名内部类的格式: public class ThreadDemo { public st ...
- Java中多线程使用匿名内部类的方式进行创建3种方式
/* * 匿名内部类的格式: */ public class ThreadDemo { public static void main(String[] args) { // 继承thread类实现多 ...
- Android(java)学习笔记75:匿名内部类的方式实现多线程程序
二话不说,首先利用代码体现出来,给大家直观的感觉: package cn.itcast_11; /* 4 * 匿名内部类的格式: 5 * new 类名或者接口名() { 6 * 重写方法; 7 * } ...
- Java基础 继承的方式创建多线程 / 线程模拟模拟火车站开启三个窗口售票
继承的方式创建多线程 笔记: /**继承的方式创建多线程 * 线程的创建方法: * 1.创建一个继承于Thread 的子类 * 2.重写Thread类的run()方法 ,方法内实现此子线程 要完成的功 ...
- 多线程01.newThread的方式创建线程
1.java应用程序的main函数是一个线程,是被jvm启动的时候调用,线程的名字叫main 2.实现一个线程,必须创建一个thread实例,override run方法,并且调用start方法. 3 ...
- java多线程系类:基础篇:02常用的实现多线程的两种方式
本章,我们学习"常用的实现多线程的2种方式":Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多 ...
- Java多线程--两种实现方式
进程概述: 在这之前,有必要了解一下什么是进程? 在一个操作系统中,每个独立的执行的程序都可称为一个进程,也就是"正在运行的程序".如图所示: 线程概述: 如上所述,每个运行的程序 ...
- Java实现多线程的三种方式
Java多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.前两种方式启动的线程没有返回值 ...
- Java:多线程概述与创建方式
目录 Java:多线程概述与创建方式 进程和线程 并发与并行 多线程的优势 线程的创建和启动 继承Thread类 start()和run() 实现Runnable接口 实现Callable接口 创建方 ...
随机推荐
- 为Autodesk Viewer添加自定义工具条
如果你参加过我们近期的活动,你就会频繁的听到我们现在正在做的Autodesk Viewer大模型浏览器,这是一个不需要下载任何插件,基于WebGL技术的浏览器,可以支持几十种数据格式.同时viewer ...
- windows 8安装wp8之后鼠标没反应了
笔记本是windows 8 系统,昨天安装了windows phone 8.0 SDK 之后,发现无线鼠标没反应了,但是触摸屏鼠标可以正常移动!真是奇怪,旁边同学也是安装了这个sdk,但没出什么问题! ...
- 自定义View之onMeasure()
1.自定义View之onMeasure() 2.onMeasure实例分析
- android post带数据请求方式,传递的数据格式包括json和map
如下: public static String httpPost(String url, String json) { try { URL u = new URL(url); HttpURLConn ...
- iOS不同IDS说明
1.Vindor标识符 identifierForVendor 一个英文字符串,对于相同的产品商(这里指com.zhang.*,也就是前缀一样),其唯一的标识设备. * 这个值对于相同的产品商在相同 ...
- 设计模式 之 观察者(Observer)模式
观察者(observer)模式定义了一对多的依赖关系,让多个观察者对象能够同时监听某一主题对象.这个主题对象中的状态发生改变时,就会通知所有的观察者对象. 观察者模式的结构图: 结构中各个部分的含义: ...
- CSS3 Gradient线性渐变
废话小说,看代码 <!DOCTYPE html > <html > <head> <meta charset="utf-8"> &l ...
- OSGI入门笔记
OSGI框架为Java定义了一个动态模块化系统,它使你可以更好地控制代码结构,动态管理代码的生命周期,并且提供了代码写作的松耦合方式:更值得称道的是,它的规范文档描述详尽.--<OSGI实战&g ...
- ORA-01501: CREATE DATABASE failed
使用dbca建库时遇到ORA-01501: CREATE DATABASE failed这个错误,检查告警日志,发现有下面错误信息: SMON: enabling tx recovery Fri Ap ...
- 使用dig查询dns解析
原文地址:使用dig查询dns解析 作者:chenwenming 一般来说linux下查询域名解析有两种选择,nslookup或者dig,而在使用上我觉得dig更加方便顺手. 如果是在debian下的 ...