本文共 1794 字,大约阅读时间需要 5 分钟。
在开发中,为了方便使用线程,需要随手开线程,最简单的做法就是采用匿名内部类方式使用多线程。
匿名内部类的格式: 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 @Override16 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 @Override26 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() world36 new Thread(new Runnable() {37 @Override38 public void run() {39 for (int x = 0; x < 100; x++) {40 System.out.println("hello" + ":" + x);41 }42 }43 }) {44 @Override45 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地址: 我的博客园地址: 我的蚂蚁笔记博客地址: Copyright ©2018 黑泽明军 【转载文章务必保留出处和署名,谢谢!】