创建线程的方式有哪些区别(通过哪些方式创建线程)很多时候,在项目中使用线程的情况很少,导致很多人只停想起最常见的两种创建线程的方法,即继承Thread类和实现Runnable接口 。
而网络上大家有人认为是三种实现方式,也有人认为是四种实现,下面我们盘点下Java实现线程到底有多少种方式 。
继承Thread,并覆写run()方法
MyThread myThread = new MyThread();myThread.start();实现Runnable接口通过实现Runnable,重写run()方法
【通过哪些方式创建线程 创建线程的方式有哪些区别】new Thread(new MyThread2()).start();实现Callable接口 + FutureTask可以有返回值的方法,建议指定Callable的泛型
MyThread3 myThread3 = new MyThread3();FutureTask futureTask = new FutureTask(myThread3);new Thread(futureTask).start();线程池ExecutorService executorService = Executors.newSingleThreadExecutor();// 使用了之前实现runnable的类executorService.submit(new MyThread2());executorService.shutdown();如果分析submit()方法,会发现最后调用的也是 Thread的start()方法
run()方法就是一个普通方法,start()方法才是启动线程,因此调用run()方法是同步的
实现Runnable和继承Thread,都是没有返回值的,而实现Callable是有返回值的,线程池可以根据要执行的task来确认是否有返回值;
线程池可以同时执行多个task,并保留一定数量的线程,减少频繁的创建和销毁线程对资源的开销 。
实际上大家如果仔细观察可以发现,每种方式的本质都是一样的,那就是创建Thread对象,只不过使用到的构造方法不同罢了 。
- 给狗狗吃水果的常见问题都有哪些?
- 小狗产后调理常见问题都有哪些?
- 小狗游水的常见问题都有哪些?
- 带小狗出行的常见问题都有哪些?
- 小狗独自一人留到家的伤害都有哪些?
- 分辨小狗肥胖症的方式都有什么?
- 小狗双眼如何医护 小狗眼睛护理方式
- 让金毛狗狗迅速长胖的饲养方式
- 秋冬季两个季节医护小狗的方式都有哪些?
- 小狗头发如何维护保养 小狗头发维护保养的方式有什么
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
