在Java面试中面试官常常会问这样一道面试题:Java面试题实现线程的几种方式?
这道题看似简单也会难道很多人,下面总结一些实现线程的几种方式。
第一种:通过实现Runnable接口
创建步骤:
1、通过实现Runnable接口创建线程执行类
2、通过重写Runnable中的run方法,编写线程执行代码
3、创建线程Thread对象,将线程执行对象传递给它
4、开始线程
第二种:通过继承Thread线程类
创建步骤:
1、通过继承Thread线程类创建线程执行类
2、定义构造方法,通过super调用父类Thread构造方法 这两个Thread类
构造方法:
Thread(String name):name为线程指定一个名字。
Thread():线程名字是JVM分配的。
3、通过重写Thread中的run方法,编写线程执行代码
4、创建线程执行对象,将参数传递给它
5、开始线程
示例代码:
class DogThread extends Thread{ @Override public void run(){ System.out.println("dog eat"); } } class CatRunnable implements Runnable{ @Override public void run() { System.out.println("cat eat"); } } public class TestThread { public static void main(String[] args) { // 方案一: DogThread dogThread = new DogThread(); dogThread.start(); // 方案二: Thread thread = new Thread(new CatRunnable()); thread.start(); // 使用内部类写法 Thread t1 = new Thread(new Runnable() { @Override public void run() { System.out.println("cat eat"); } }); t1.start(); // 使用lambda表达式写法 Thread t2 = new Thread(() ->{ System.out.println("cat eat"); }); t2.start(); } }
运行结果:
dog eat cat eat cat eat cat eat