6、多线程创建的方式对比

1、 对比

  • 继承Thread

    • 优点:可以直接使用Thread类中的方法,代码简单
    • 缺点:因为Java是单继承,所以继承Thread之后就不能继承其他的类
  • 实现Runnable接口

    • 优点:即自定义类已经有了父类也不会受到影响,因为可以实现多个接口
    • 缺点:在run方法内部需要获取到当前线程的Thread对象后才能使用Thread中的方法
  • 实现Callable接口

    • 优点:可以获取返回值,可以抛出异常
    • 缺点:代码编写较为复杂

2、创建线程的两种编码方式

使用匿名内部类创建线程

   /*
     * 使用匿名内部类创建线程
     */
    new Thread(new Runnable() { // 1.将Runnable的子类对象传递给Thread的构造方法
        public void run() { // 2.重写run方法
            for (int i = 0; i < 1000; i++) { // 3.将要执行的代码写在run方法中
                System.out.println("Runnable");
            }
        }
    }).start(); // 4.开启线程

使用lambda表达式创建线程

//lambda写法
//因为Thread类中接收Runnable类型的对象,所以编译器会识别出lambda表达式是Runnable对象
new Thread(() -> {
    for (int i = 0; i < 1000; i++) { // 3.将要执行的代码写在run方法中
        System.out.println("lambda");
    }

}).start();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容