s-day05-匿名内部类实现多线程(重点掌握)
This commit is contained in:
@@ -0,0 +1,58 @@
|
|||||||
|
package com.inmind.thread_noname03;
|
||||||
|
|
||||||
|
/*
|
||||||
|
匿名内部类的语法:
|
||||||
|
new 父类名|接口名(){
|
||||||
|
要重写的方法
|
||||||
|
}
|
||||||
|
|
||||||
|
匿名内部类的作用:将父类或者接口的子类(实现类)的定义和对象的创建用一段代码操作完毕
|
||||||
|
匿名内部类一定是多态
|
||||||
|
|
||||||
|
多线程的启动方式
|
||||||
|
1.继承Thread
|
||||||
|
2.实现Runnable
|
||||||
|
*/
|
||||||
|
public class Demo04 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
//普通写法,非匿名内部类(开启线程方式一:继承Thread)
|
||||||
|
/*MyThread myThread = new MyThread();
|
||||||
|
myThread.start();*/
|
||||||
|
System.out.println("-------------------------");
|
||||||
|
//匿名内部类启动线程,方式一
|
||||||
|
Thread thread = new Thread(){
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
System.out.println("匿名内部类启动了子线程:"+Thread.currentThread().getName());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
thread.start();
|
||||||
|
//普通写法,非匿名内部类(开启线程方式二:实现Runnable)
|
||||||
|
//Thread thread = new Thread(myRunnable, "线程666");
|
||||||
|
|
||||||
|
//匿名内部类启动线程,方式二:实现Runnable
|
||||||
|
Thread thread1 = new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
System.out.println("匿名内部类启动了子线程(Runnable):"+Thread.currentThread().getName());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
thread1.start();
|
||||||
|
System.out.println("-----------匿名对象+匿名内部类写法--------------");
|
||||||
|
//方式一:继承Thread
|
||||||
|
new Thread(){
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
System.out.println("匿名对象+匿名内部类启动了子线程(继承Thread):"+Thread.currentThread().getName());
|
||||||
|
}
|
||||||
|
}.start();
|
||||||
|
|
||||||
|
//方式二:实现Runnable
|
||||||
|
new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
System.out.println("匿名对象+匿名内部类启动了子线程(实现Runnable):"+Thread.currentThread().getName());
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user