创建多线程_Java多线程创建方式
发布日期:2021-06-24 17:21:44
浏览次数:2
分类:技术文章
本文共 2920 字,大约阅读时间需要 9 分钟。
多线程的创建方式:
- 实现Runnable接口
- 继承Thread类,重写run方法
- 线程池
- 通过Callable和FutureTask创建线程
具体实现:
1、实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target
package com.example.demo;public class ThreadDemo implements Runnable { public void run(){ //编写自己的线程代码 System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { ThreadDemo d = new ThreadDemo(); new Thread(d).start(); }}
优点:可以继承其他类
缺点:实现相对复杂
2、继承Thread类,重写run方法
package com.example.demo;public class ThreadDemo extends Thread { public void run(){ //编写自己的线程代码 System.out.println(Thread.currentThread().getName()); }}
优点:简单
缺点:不能继承其他类了,功能单一
3、通过线程池创建线程
package com.example.demo;import com.alibaba.fastjson.JSON;import java.util.ArrayList;import java.util.List;import java.util.concurrent.*;public class ThreadDemolTest { private static ExecutorService threadPool = new ThreadPoolExecutor( 3, 3, 6000, TimeUnit.SECONDS, new LinkedBlockingDeque<>(1), Executors.defaultThreadFactory(), new ThreadPoolExecutor.CallerRunsPolicy()); public static void main(String[] args) { List
4、通过Callable和FutureTask创建线程(实现Callable接口,重写call()方法,并包装成FutureTask对象传入Thread构造器)
package com.example.demo;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;public class ThreadDemo { public static void main(String[] args) { TestWorkDemol t = new TestWorkDemol(); FutureTaskfutureTask = new FutureTask (t); Thread thread = new Thread(futureTask); thread.start(); try { Object result = futureTask.get(); System.out.println(JSON.toJSONString(result)); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }}public class TestWorkDemol implements Callable { @Override public Object call() throws Exception { return "测试"; }}
实质是三种创建方式。
注意:get方法是阻塞的,即:线程无返回结果,get方法会一直等待。
转载地址:https://blog.csdn.net/weixin_34081553/article/details/112625422 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月05日 19时19分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【vn.py】国内期货CTP配置教程
2019-04-28
【vn.py】期货穿透式CTP API接入
2019-04-28
【vn.py】量化策略开发
2019-04-28
【python量化】python通过新浪财经获取金融衍生品历史数据
2019-04-28
【vn.py】量化策略历史回测(基于本地csv数据)
2019-04-28
Mysql5.7 windows 下压缩包方式安装以及环境配置
2019-04-28
【vn.py】源码解析之 Dual Thrust 策略
2019-04-28
tensorflow实验记录01——常量的功能测试
2019-04-28
tensorflow实验记录02——前向传播中存在的问题
2019-04-28
PYQT5使用QtMultimedia播放网易云音乐下载音乐部分播放不了问题及解决方案
2019-04-28
python 神经网络数据增强小试
2019-04-28
判断程序中循环的进度方法整理
2019-04-28
强化学习笔记系列一
2019-04-28
强化学习笔记系列二
2019-04-28
CVPR2020超分辨率重建论文阅读笔记
2019-04-28
深度学习对振动类光谱信息的处理论文笔记
2019-04-28
光谱信息在癌症检测上的应用
2019-04-28