方法一:继承Thread类
创建过程
- 继承Thread类
- 重写run(),编写线程执行体
- 调用start()开启线程
public class DemoThread extends Thread {
//1. 继承Thread类
@Override
public void run() {
//2. 重写run()
super.run();
for (int i = 0; i < 20; i++) {
System.out.println("打游戏!");
}
}
public static void main(String[] args) {
DemoThread demoThread = new DemoThread();
//3. 调用start()开启线程
demoThread.start();
for (int i = 0; i < 500; i++) {
System.out.println("学习!");
}
}
}
//此处结果:打游戏和学习穿插进行,说明主线程和新创建的线程是可以同时执行的
使用此方法会受到java只能单继承的局限性影响,所以更加推荐方法二
方法二:实现Runnable接口
创建过程
- 定义MyRunnable类实现Runnable接口
- 实现run()方法,编写线程执行体
- 创建线程对象,调用start()启动线程
public class DemoThread implements Runnable {
//1. 实现Runnable接口
@Override
public void run() {
//2. 重写run()
for (int i = 0; i < 20; i++) {
System.out.println("打游戏!---"+i);
}
}
public static void main(String[] args) {
DemoThread demoThread = new DemoThread();
//启动线程
new Thread(demoThread).start();
for (int i = 0; i < 500; i++) {
System.out.println("学习!---"+i);
}
}
}