匿名内部类方式使用多线程

简介: 在开发中,为了方便使用线程,需要随手开线程,最简单的做法就是采用匿名内部类方式使用多线程。   匿名内部类的格式:     new 类名或者接口名() {       重写方法;     }   本质:是该类的子类对象或者该接口的实现类对象。

在开发中,为了方便使用线程,需要随手开线程,最简单的做法就是采用匿名内部类方式使用多线程
  匿名内部类的格式:
    new 类名或者接口名() {
      重写方法;
    }
  本质:是该类的子类对象或者该接口的实现类对象
    new Thread() {代码...}.start();
    new Thread(new Runnable() {代码...}) {}.start();
示例代码如下:

 1 package cn.itcast_11;
 2 
 3 /*
 4  * 匿名内部类的格式:
 5  *         new 类名或者接口名() {
 6  *             重写方法;
 7  *         }
 8  * 
 9  *         本质:是该类的子类对象或者该接口的实现类对象。
10  */
11 public class ThreadDemo {
12     public static void main(String[] args) {
13         // 继承Thread类来实现多线程
14         new Thread() {
15             @Override
16             public void run() {
17                 for (int x = 0; x < 100; x++) {
18                     System.out.println(Thread.currentThread().getName() + ":" + x);
19                 }
20             }
21         }.start();
22 
23         // 实现Runnable接口来实现多线程
24         new Thread(new Runnable() {
25             @Override
26             public void run() {
27                 for (int x = 0; x < 100; x++) {
28                     System.out.println(Thread.currentThread().getName() + ":" + x);
29                 }
30             }
31         }) {
32         }.start();
33 
34         // 面试题
35         // 到底执行的是Thread类的子类对象的run(),还是执行的是Runnable接口的实现类对象的run()呢? 答:是Thread类的子类对象的run() world
36         new Thread(new Runnable() {
37             @Override
38             public void run() {
39                 for (int x = 0; x < 100; x++) {
40                     System.out.println("hello" + ":" + x);
41                 }
42             }
43         }) {
44             @Override
45             public void run() {
46                 for (int x = 0; x < 100; x++) {
47                     System.out.println("world" + ":" + x);
48                 }
49             }
50         }.start();
51         
52     }
53 }

 

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
Ubuntu
ubuntu挂载硬盘
ubuntu挂载硬盘
603 0
|
存储 消息中间件 监控
一文搞懂常见的网络I/O模型
一文搞懂常见的网络I/O模型
286 0
|
人工智能 自然语言处理 异构计算
Stability AI发布基于稳定扩散的音频生成模型Stable Audio
近日Stability AI推出了一款名为Stable Audio的尖端生成模型,该模型可以根据用户提供的文本提示来创建音乐。
330 1
|
消息中间件 存储 缓存
【Kafka】(十)Kafka 如何实现高吞吐量
【Kafka】(十)Kafka 如何实现高吞吐量
889 0
|
11月前
|
C语言 C++ 容器
【c++丨STL】string模拟实现(附源码)
本文详细介绍了如何模拟实现C++ STL中的`string`类,包括其构造函数、拷贝构造、赋值重载、析构函数等基本功能,以及字符串的插入、删除、查找、比较等操作。文章还展示了如何实现输入输出流操作符,使自定义的`string`类能够方便地与`cin`和`cout`配合使用。通过这些实现,读者不仅能加深对`string`类的理解,还能提升对C++编程技巧的掌握。
438 5
|
人工智能 测试技术 API
ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级
ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级
ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级
|
8月前
|
移动开发 前端开发 UED
React 音频预览组件 Audio Preview
在现代Web开发中,React框架下的音频播放功能日益重要。本文介绍如何使用React创建交互式音频预览组件,涵盖基础构建、常见问题及解决方案。通过HTML5音频标签实现基本播放控制,使用状态管理增强功能。解决跨域资源共享(CORS)、格式兼容性、自动播放限制等问题,并探讨性能优化、样式定制、事件处理、移动端适配、错误处理、国际化支持及组件集成等关键点,帮助开发者提升组件稳定性和用户体验。
128 10
grep仅显示匹配行的文件名
grep仅显示匹配行的文件名
807 1
|
前端开发 JavaScript 索引
【Web 前端】说一说伪数组和数组的区别?
【4月更文挑战第22天】【Web 前端】说一说伪数组和数组的区别?
|
定位技术 Python
Anaconda为虚拟环境安装第三方库与Spyder等软件的方法
Anaconda为虚拟环境安装第三方库与Spyder等软件的方法
453 1