一、创建线程的两种方式:
1.继承Thread类。
步骤:
(1)继承Thread类。
(2)重写run()方法。
(3)创建该类对象,调用start()方法启动线程。
class Demo extends Thread {
@Override
public void run() {
for (int x = 0; x < 60; x++) {
System.out.println("Demo run---" + x);
}
}
}
public class ThreadDemo {
public static void main(String[] args) {
Demo d1 = new Demo();
d1.start();
}
}
备注:
- Thread类本身实现了Runnable接口,并提供了一些方法如getName()、getId()等。
- 调用run()方法只是调用了一个普通方法,子类将要实现的功能放在run()方法里,而调用start()方法才是启动线程,start()方法会启动线程并调用run()方法。
2.实现Runnable接口。
步骤:
(1)创建一个类实现Runnable接口。
(2)重写run()方法。
(3)创建该类对象,并以该类对象为参数创建Thread对象。
(4)调用start()方法启动线程。
class ThreadDemo implements Runnable {
public void run() {
for (int x = 0; x < 50; x++) {
System.out.println("demo run---" + x);
}
}
}
public class DemoTest {
public static void main(String[] args) {
ThreadDemo a = new ThreadDemo();
Thread a1 = new Thread(a);
Thread a2 = new Thread(a);
Thread a3 = new Thread(a);
Thread a4 = new Thread(a);
a1.start();
a2.start();
a3.start();
a4.start();
}
}