public static void main(String[] args) {
// 创建Thread的子类
Thread thread = new Thread() {
public void run() {
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("1A" + Thread.currentThread());
// System.out.println("2A" + this.currentThread());
}
}
};
thread.start();
// Runnable
new Thread(new Runnable() {//Runnable为线程的宿主
@Override
public void run() {
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("1B" + Thread.currentThread());
}
}
}).start();
//首先调用Thread的start()方法,启动线程,start()方法会找当前Thread对象的的run()方法,就调用自己的
//run()方法,如果没找到自己的run()方法,就会去调用父类的run()方法,父类的run()方法回去找Runnable,
//创建Thread子类,覆盖父类的run()方法,父类的run()方法被屏蔽,所以会调用子类的run()方法
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Runnable:" + Thread.currentThread());
}
}
}) {
public void run() {
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread" + Thread.currentThread());
}
};
}.start();
}