博客 |
---|
Java-(高级) |
多线程实现方式2实现Runnable接口
方式2:实现Runnable接口
步骤:
A:自定义类MyRunnable实现Runnable接口
B:重写run()方法
C:创建MyRunnable类的对象
D:创建Thread类的对象,并把C步骤的对象作为构造参数传递
代码演示
public class MyRunnableDemo {
public static void main(String[] args) {
//创建MyRunnable对象
MyRunnable my = new MyRunnable();
//创建Thread类的对象,并把C步骤的对象作为构造参数传递
//Thread(Runnable target)
Thread t1 = new Thread(my);
Thread t2 = new Thread(my);
//设置线程对象名称
t1.setName("疾风剑豪");
t2.setName("影流之主");
//启动线程
t1.start();
t2.start();
//Thread(Runnable target, String name)
Thread t3 =new Thread(my,"至高之拳");
Thread t4 =new Thread(my,"法外狂徒");
//设置线程对象名称
//启动线程
t3.start();
t4.start();
}
}
自定义类实现Runnable接口
public class MyRunnable implements Runnable {
@Override
public void run() {
for (int x = 0; x <5 ; x++) {
// 由于实现接口的方式就不能直接使用Thread类的方法了,但是可以间接的使用
System.out.println(Thread.currentThread().getName()+"-"+x);
}
}
}
结果:
至高之拳-0
至高之拳-1
至高之拳-2
至高之拳-3
至高之拳-4
疾风剑豪-0
疾风剑豪-1
疾风剑豪-2
疾风剑豪-3
疾风剑豪-4
法外狂徒-0
法外狂徒-1
法外狂徒-2
法外狂徒-3
法外狂徒-4
影流之主-0
影流之主-1
影流之主-2
影流之主-3
影流之主-4
匿名内部类的格式实现多线程
new 类名或者接口名() {
重写方法;
};
本质:是该类或者接口的子类对象。
// 继承Thread类来实现多线程
public class ThreadDemo {
public static void main(String[] args) {
//匿名实现多线程方式1
new Thread() {
@Override
public void run() {
for (int x = 0; x < 10; x++) {
System.out.println(Thread.currentThread().getName() + "-" + x);
}
}
}.start();
//匿名实现多线程方式2实现Runnable接口来实现多线程
new Thread(new Runnable() {
@Override
public void run() {
for (int x = 0; x < 10; x++) {
System.out.println(Thread.currentThread().getName() + "-" + x);
}
}
}) {
}.start();
//匿名实现多线程方式3(该方式是没什么用.可能面试会问)
new Thread(new Runnable() {
@Override
public void run() {
for (int x = 0; x < 10; x++) {
System.out.println("hello" + x);
}
}
}) {
@Override
public void run() {
for (int x = 0; x < 10; x++) {
System.out.println("hello" + x);//打印的是Thread里面的
}
}
}.start();
}
}
结果:
Thread-1-0
Thread-0-0
Thread-1-1
Thread-1-2
Thread-1-3
Thread-1-4
Thread-1-5
Thread-1-6
Thread-1-7
Thread-1-8
Thread-1-9
Thread-0-1
Thread-0-2
Thread-0-3
Thread-0-4
Thread-0-5
Thread-0-6
Thread-0-7
Thread-0-8
Thread-0-9
hello0
hello1
hello2
hello3
hello4
hello5
hello6
hello7
hello8
hello9