diff --git a/javaSE-day06/src/com/inmind/noname_thread03/Demo03.java b/javaSE-day06/src/com/inmind/noname_thread03/Demo03.java new file mode 100644 index 0000000..4a41541 --- /dev/null +++ b/javaSE-day06/src/com/inmind/noname_thread03/Demo03.java @@ -0,0 +1,57 @@ +package com.inmind.noname_thread03; +/* + 1.匿名内部类的语法: + new 父类名|接口名(){ + 要重写的方法 + } + + 2.匿名内部类的作用:将父类或者接口的子类(实现类)的定义和对象的创建用一段代码操作完毕 + 匿名内部类一定是多态 + + 3.线程的启动方式 + 1.继承Thread + 2.实现Runnable + */ +public class Demo03 { + public static void main(String[] args) { + //普通写法 + MyThread myThread = new MyThread(); + myThread.start(); + + //匿名内部类启动多线程方式一 (继承Thread) + Thread thread1 = new Thread(){ + @Override + public void run() { + System.out.println(Thread.currentThread().getName()+"线程启动了"); + } + }; + thread1.start(); + + //匿名对象启动多线程(最终形态) + new Thread(){ + @Override + public void run() { + System.out.println(Thread.currentThread().getName()+"线程启动了"); + } + }.start(); + //------------------------------------------------------ + //匿名内部类启动多线程方式二 (实现Runnable) + Runnable runnable = new Runnable(){ + @Override + public void run() {//新的线程要执行的任务代码 + System.out.println(Thread.currentThread().getName()+"线程启动了"); + } + }; + Thread thread2 = new Thread(runnable); + thread2.start(); + + //匿名对象启动多线程方式二(重点!!!!!!!)(最终形态) + new Thread(new Runnable(){ + @Override + public void run() {//新的线程要执行的任务代码 + System.out.println(Thread.currentThread().getName()+"线程启动了"); + } + }).start(); + + } +} diff --git a/javaSE-day06/src/com/inmind/noname_thread03/MyThread.java b/javaSE-day06/src/com/inmind/noname_thread03/MyThread.java new file mode 100644 index 0000000..e1a3be3 --- /dev/null +++ b/javaSE-day06/src/com/inmind/noname_thread03/MyThread.java @@ -0,0 +1,9 @@ +package com.inmind.noname_thread03; + +public class MyThread extends Thread{ + @Override + public void run() { + + System.out.println(Thread.currentThread().getName()+"线程启动了"); + } +}