创建线程有哪些方式?
创建线程有哪些方式?
- 继承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
创建线程有哪些方式?相关推荐
- C++多线程:thread类创建线程的多种方式
文章目录 描述 函数成员简介 总结 描述 头文件 <thread> 声明方式:std::thread <obj> 简介 线程在构造关联的线程对象时立即开始执行,从提供给作为构造 ...
- 教你学Java | 带你学习Java多线程(续:创建线程的其他方式与activeCount方法的浅谈)
前言 相信每一位程序猿对"多线程"这个概念应该都不陌生,无论是在开发还是面试的时候,都会遇到多线程的问题.不过,一定有很多小伙伴才刚刚接触到多线程,那么在此就由小弟为各位小伙伴细细 ...
- Java创建线程池的方式
Java创建线程池的方式 文章目录 Java创建线程池的方式 一.通过Executors工厂方法创建 1.Executors.newSingleThreadExecutor() 2.Executors ...
- java 创建线程_java多线程|创建线程的各种方式
javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~https: ...
- Qt创建线程两种方式的区别
使用QT创建线程有两种方式,方式A使用moveToThread,方式B是直接继承QThread.差异主要在于方式A的槽函数将会在新线程中运行,而方式B的槽函数在旧线程中运行. 结论如下: PS:旧线程 ...
- java多线程 -- 创建线程的第三者方式 实现Callable接口
Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一 ...
- java并发编程基础系列(五): 创建线程的四种方式
线程的创建一共有四种方式: 继承于Thread类,重写run()方法: 实现Runable接口,实现里面的run()方法: 使用 FutureTask 实现有返回结果的线程 使用ExecutorSer ...
- java 创建线程_【80期】说出Java创建线程的三种方式及对比
点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅. 一.Ja ...
- 创建线程都有哪些方式?— Callable篇
今天我们来看一道面试题引发的思考 问: 创建线程都有哪些方式? 答: 我了解的有四种创建方式: 继承Thread类创建线程类 通过Runnable接口创建线程类 通过Callable和Future创建 ...
最新文章
- 使用Python和OpenCV对轮廓进行排序(从左到右,自上而下)
- Oracle在linux下使用小技巧
- 算法—顺序表之列表的扩容机制(python实现)
- 程序和计划任务管理( 查看进程ps,控制进程,终止命令进程,top命令,at一次性任务,crontab周期任务)
- 数据结构:(1)课程总览
- python受欢迎的原因是什么?
- Windows下架设SVN服务
- 计算机组成原理作业三
- 使用阿里云npm镜像加速
- 2020-02-27
- 遇到 oracle 错误 904,EXP-00008: 遇到 Oracle 错误 904
- 研发人员提高自身水平促进网络棋牌游戏发展
- 坦克大战的网络对战实现C++(客户端+服务端)
- echarts 中国地图加自定义图标
- GPU显卡环境配置安装
- 解决安装程序无法初始化。请下载Adobe
- xcode will continue when iPhone is finished iPhone is busy:Processing symbol files
- 一个基于python实现的录屏软件
- Failed at the chromedriver@2.40.0 install script.
- PR,ROC,AUC计算方法