Java多线程的常用创建方式总结

 更新时间:2021年06月24日 16:36:42   作者:qq_35926326  
今天给大家带来的是关于Java多线程的相关知识,文章围绕着Java多线程的常用创建方式展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下

Java多线程的创建方式

Java现在有四种创建的方式:继承Threa类、实现Runnable接口、实现Callable接口、线程池

Thread、Runnable都在java.lang包下;Callable、线程池都在java.util.concurrent包下

1.继承Thread类,重写run方法

创建一个类继承Thread类,并重写run();因为run()是线程具体执行的方法

在测试类或者main()创建Thread对象,并调用start()启动线程

备注:start()是启动线程,run()是线程执行的业务方法

2.实现Runnable接口,通过参数方式创建线程

创建一个类实现Runnable接口并重写run

在测试类或者main()创建Thread对象,并传入该接口实现类对象,并调用start()启动线程

3.实现Callable接口,通过FutureTask来创建线程

创建一个类实现Callable接口,重写call()call()支持有返回值和抛异常Callable支持泛型

传入Callable对象,创建FutureFask类

备注:FutureTask实现了Runnable接口;FutureTask.get()可以获取call()返回值

创建Thread对象,并调用start方法启动线程

4.通过线程池方式创建线程

创建一个类实现Runnable或者Callable接口,并重写对应方法

创建一个线程池对象,并执行execute方法启动线程

备注:可以通过线程池方式管理线程个数等配置信息

几种创建方式想必大家都已了解,但在实际开发中大多数都是以线程池来操作线程的;

线程池优势:提升响应速度,提高资源重用率,便于管理

线程的生命周期

到此这篇关于Java多线程的常用创建方式总结的文章就介绍到这了,更多相关Java多线程的创建方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现拖拽列表项的排序功能

    Java实现拖拽列表项的排序功能

    这篇文章主要介绍了Java实现拖拽列表项的排序功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • Java反射机制详解_动力节点Java学院整理

    Java反射机制详解_动力节点Java学院整理

    Java 反射机制。通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还原“类的全部的信息”。这篇文章给大家详细介绍了java反射机制的知识,感兴趣的朋友一起看看吧
    2017-06-06
  • Java实现文件读取和写入过程解析

    Java实现文件读取和写入过程解析

    这篇文章主要介绍了Java实现文件读取和写入过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值。,需要的朋友可以参考下
    2019-10-10
  • Spring Boot项目集成Knife4j接口文档的实例代码

    Spring Boot项目集成Knife4j接口文档的实例代码

    Knife4j就相当于是swagger的升级版,对于我来说,它比swagger要好用得多<BR>,这篇文章主要介绍了Spring Boot项目集成Knife4j接口文档的示例代码,需要的朋友可以参考下
    2021-12-12
  • IntelliJ IDEA连接MySQL数据库详细图解

    IntelliJ IDEA连接MySQL数据库详细图解

    今天小编就为大家分享一篇关于intellij idea连接mysql数据库详细图解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 浅谈@PostConstruct不被调用的原因

    浅谈@PostConstruct不被调用的原因

    这篇文章主要介绍了浅谈@PostConstruct不被调用的原因及分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 浅谈Mybatis版本升级踩坑及背后原理分析

    浅谈Mybatis版本升级踩坑及背后原理分析

    这篇文章主要介绍了浅谈Mybatis版本升级踩坑及背后原理分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • SpringBoot和Vue.js实现的前后端分离的用户权限管理系统

    SpringBoot和Vue.js实现的前后端分离的用户权限管理系统

    本文主要介绍了SpringBoot和Vue.js实现的前后端分离的用户权限管理系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 详解Java对象序列化为什么要使用SerialversionUID

    详解Java对象序列化为什么要使用SerialversionUID

    这篇文章主要介绍了详解Java对象序列化为什么要使用SerialversionUID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Nacos后台频繁打印get changedGroupKeys:[]的问题及解决

    Nacos后台频繁打印get changedGroupKeys:[]的问题及解决

    这篇文章主要介绍了Nacos后台频繁打印get changedGroupKeys:[]的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01

最新评论