创建线程有哪些方式?

  • 继承Thread类
  • 实现Runnable接口
  • 实现Callable接口,配合FutureTask
  • 线程池
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;public class TestStratThread {public static void main(String[] args) {testStrartSubThread();testImplementsRunable();testImplementsCallable();}//测试继承Thread类的方式创建、启动线程public static void testStrartSubThread() {Thread t1 = new CustomThread();t1.setName("CustomThread");t1.start();}//测试实现Runnable接口的方式创建、启动线程public static void testImplementsRunable() {Thread t2 = new Thread(new CustomRunnable());t2.setName("CustomRunnable");t2.start();}//测试实现Callable接口的方式创建、启动线程public static void testImplementsCallable() {Callable<String> callable = new CustomCallable();FutureTask<String> futureTask = new FutureTask<String>(callable);Thread t3 = new Thread(futureTask);t3.setName("CustomCallable");t3.start();try {System.out.println(futureTask.get());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}}}//继承自Thread,重写run方法
class CustomThread extends Thread {@Overridepublic void run() {System.out.println(Thread.currentThread().getName());}}//实现Runnable接口,重写run方法
class CustomRunnable implements Runnable {public void run() {System.out.println(Thread.currentThread().getName());}}//实现Callable接口,重写call方法
class CustomCallable implements Callable<String> {public String call() throws Exception {System.out.println(Thread.currentThread().getName());return "Callable Result";}}

【Java面试题与答案】整理推荐

  • 基础与语法
  • 集合
  • 网络编程
  • 并发编程
  • Web
  • 安全
  • 设计模式
  • 框架
  • 算法与数据结构
  • 异常
  • 文件解析与生成
  • Linux
  • MySQL
  • Oracle
  • Redis
  • Dubbo

创建线程有哪些方式?相关推荐

  1. C++多线程:thread类创建线程的多种方式

    文章目录 描述 函数成员简介 总结 描述 头文件 <thread> 声明方式:std::thread <obj> 简介 线程在构造关联的线程对象时立即开始执行,从提供给作为构造 ...

  2. 教你学Java | 带你学习Java多线程(续:创建线程的其他方式与activeCount方法的浅谈)

    前言 相信每一位程序猿对"多线程"这个概念应该都不陌生,无论是在开发还是面试的时候,都会遇到多线程的问题.不过,一定有很多小伙伴才刚刚接触到多线程,那么在此就由小弟为各位小伙伴细细 ...

  3. Java创建线程池的方式

    Java创建线程池的方式 文章目录 Java创建线程池的方式 一.通过Executors工厂方法创建 1.Executors.newSingleThreadExecutor() 2.Executors ...

  4. java 创建线程_java多线程|创建线程的各种方式

    javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~https: ...

  5. Qt创建线程两种方式的区别

    使用QT创建线程有两种方式,方式A使用moveToThread,方式B是直接继承QThread.差异主要在于方式A的槽函数将会在新线程中运行,而方式B的槽函数在旧线程中运行. 结论如下: PS:旧线程 ...

  6. java多线程 -- 创建线程的第三者方式 实现Callable接口

    Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一 ...

  7. java并发编程基础系列(五): 创建线程的四种方式

    线程的创建一共有四种方式: 继承于Thread类,重写run()方法: 实现Runable接口,实现里面的run()方法: 使用 FutureTask 实现有返回结果的线程 使用ExecutorSer ...

  8. java 创建线程_【80期】说出Java创建线程的三种方式及对比

    点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅. 一.Ja ...

  9. 创建线程都有哪些方式?— Callable篇

    今天我们来看一道面试题引发的思考 问: 创建线程都有哪些方式? 答: 我了解的有四种创建方式: 继承Thread类创建线程类 通过Runnable接口创建线程类 通过Callable和Future创建 ...

最新文章

  1. 使用Python和OpenCV对轮廓进行排序(从左到右,自上而下)
  2. Oracle在linux下使用小技巧
  3. 算法—顺序表之列表的扩容机制(python实现)
  4. 程序和计划任务管理( 查看进程ps,控制进程,终止命令进程,top命令,at一次性任务,crontab周期任务)
  5. 数据结构:(1)课程总览
  6. python受欢迎的原因是什么?
  7. Windows下架设SVN服务
  8. 计算机组成原理作业三
  9. 使用阿里云npm镜像加速
  10. 2020-02-27
  11. 遇到 oracle 错误 904,EXP-00008: 遇到 Oracle 错误 904
  12. 研发人员提高自身水平促进网络棋牌游戏发展
  13. 坦克大战的网络对战实现C++(客户端+服务端)
  14. echarts 中国地图加自定义图标
  15. GPU显卡环境配置安装
  16. 解决安装程序无法初始化。请下载Adobe
  17. xcode will continue when iPhone is finished iPhone is busy:Processing symbol files
  18. 一个基于python实现的录屏软件
  19. Failed at the chromedriver@2.40.0 install script.
  20. PR,ROC,AUC计算方法

热门文章

  1. js代码实现字符串拼接运算
  2. 微信小程序 运营的特性—模块化
  3. 使命召唤ol显示服务器连接超时,使命召唤online无法连接大厅服务怎么办 无法连接大厅解决方法...
  4. md文档中的图片—Github图床自动替换墨滴图床
  5. 为什么NaN===NaN?
  6. unity怎么导入系统的树_在unity3d里面如何种树? - 收获啦
  7. 【MySQL 优化】单一索引与复合索引
  8. 机械表使用说明(通用)
  9. 【CAD基础】标注及标注样式
  10. Javascript的脑洞(一)