当前位置:  首页>> 技术小册>> Java语言基础16-JDK8 新特性

  • 当需要启动一个线程去完成任务的时候,通过会通过 java.lang.Runnable 接口来定义任务内容,并使用 java.lang.Thread 类来启动该线程,代码如下:
  1. package com.github.demo1;
  2. /**
  3. * @author maxiaoke.com
  4. * @version 1.0
  5. *
  6. */
  7. public class Test {
  8. public static void main(String[] args) {
  9. // 匿名内部类
  10. Runnable runnable = new Runnable() {
  11. @Override
  12. public void run() {
  13. System.out.println("多线程任务执行!!!!");
  14. }
  15. };
  16. // 启动线程
  17. new Thread(runnable).start();
  18. }
  19. }
  • 本着“一切皆对象”的思想,这样的做法无可厚非的:首先创建 Runnable 接口的匿名内部类对象来指定任务内容,然后将其交给一个线程来启动。
  • 代码分析:
  • 对于Runnable 的匿名内部类的用法,可以分析出以下几点:
    • ① Thread 类需要 Runnable 接口作为参数,其中的抽象 run 方法是用来指定线程任务内容的核心。
    • ② 为了指定 run 的方法体,不得不 需要 Runnable 接口的实现类。
    • ③ 为了省去定义一个 Runnable 实现类的麻烦,不得不 实现匿名内部类。
    • ④ 为了覆盖重写抽象 run 方法,其方法名称、方法参数、方法的返回值 不得不 重写一遍,且不能写错。
  • 但是,实际上,方法体才是关键所在 。

该分类下的相关小册推荐: