Java面试题实现线程的几种方式?

在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

关于线程的更多知识点见这篇文章https://blog.csdn.net/weixin_45366499/article/details/104346644


以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!

发布了120 篇原创文章 · 获赞 11 · 访问量 6950

猜你喜欢

转载自blog.csdn.net/weixin_45366499/article/details/105393960