【后端面经-Java】Java创建线程的方法简介

这篇具有很好参考价值的文章主要介绍了【后端面经-Java】Java创建线程的方法简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 1. 线程的基本概念
    • 1.1 线程
    • 1.2 线程状态和生命周期
  • 2. 创建线程的四种方法
    • 2.1 继承Thread类
    • 2.2 实现Runnable接口
    • 2.3 实现Callable接口
    • 2.4 使用线程池
  • 3. 参考资料

1. 线程的基本概念

1.1 线程

学过操作系统的同学应该不陌生,线程是计算机中的最小调度单元,一个进程可以有多个线程,执行并发操作,提高任务的运行效率

1.2 线程状态和生命周期

  1. 线程状态包括:
  • 新建(new):线程创建而尚未启动的阶段;
  • 就绪态(runnable/ready):线程已经启动,等到CPU资源分配
  • 运行态(running):线程分配到CPU资源,正式运动
  • 阻塞态(blocked):在运行过程中由于存在资源缺乏等原因,进入阻塞态等到资源条件满足,再次执行;
  • 等待态(waiting):线程进入I/O等操作或者线程执行 sleep()、join() 或 wait(timeout) 方法时,,等待响应,这时候进入等待态,其他线程可接着执行;
  • 超时等待(timed waiting):线程进入超时等待态类似于等待态,但是有时间限制,等待时间到了,线程会自动进入就绪态,等待CPU资源调度;
  • 终止态(terminated):线程执行完毕或者出现异常,进入终止态,线程生命周期结束。
  1. 线程生命周期如图所示:
  • 3. 阻塞态 vs 等待态
    • 阻塞态:因为某些资源问题而引起,线程在阻塞态的时候,其他线程无法执行。
    • 等待态: 一般不是由于资源问题而是线程本身的操作而引起,线程在等待态的时候,其他线程可以执行。

2. 创建线程的四种方法

2.1 继承Thread类

Java.lang.Thread类是java的线程类,类中包括一些线程基本信息和线程操作函数,通过对Thread类的继承,重写run()方法,可以实现线程的创建。

2.2 实现Runnable接口

不继承Thread类,而是初始化Thread类,实现Runnable接口,实现线程的创建。

2.3 实现Callable接口

Callable接口Runnable接口类似,都是实现线程的创建,Callable接口可接受结果(有返回值),且可以检查异常。

2.4 使用线程池

使用线程池创建线程的优点如下所示:

  • 减少每个任务的调用开销
  • 提供一种可行方法,限制和管理系统资源消耗
  • 能够提高线程异步执行的性能

两种创建方式:

  • ThreadPoolExecutor
  • Executors

:关于具体的代码解释,以后有机会再补充,各位也可以根据下面的参考博客进行学习。

3. 参考资料

参考博客-1
参考博客-2文章来源地址https://www.toymoban.com/news/detail-491823.html

到了这里,关于【后端面经-Java】Java创建线程的方法简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java多线程 - 创建线程池的方法 - ThreadPoolExecutor和Executors

    线程池介绍 什么是线程池 ? 线程池就是一个可以复用线程的技术。 不使用线程池的问题 : 如果用户每发起一个请求,后台就创建一个新线程来处理,下次新任务来了又要创建新线程,而创建新线程的开销是很大的,这样会严重影响系统的性能。 线程池工作原理 : 例如线程池

    2023年04月16日
    浏览(35)
  • 【Java】详解多线程的概述及三种创建方法

    🌺 个人主页 : Dawn黎明开始 🎀 系列专栏 : Java ⭐ 每日一句 : 身在井隅,心向阳光,眼里有诗,自在远方 📢 欢迎大家:关注 🔍+ 点赞 👍+评论 📝+ 收藏⭐️ 文章目录 一.🔐多线程 📋前言 1.1🔓进程 1.1.1🔑什么是进程? 1.1.2🔑多进程有什么意义呢? 1.2🔓线程 1.2.1🔑什

    2024年02月05日
    浏览(33)
  • 【后端面经-架构】RabbitMQ简介

    MQ(Message Queue)用于在应用程序之间相互通信,在消息中发送数据进行通信,而不需要特意建立连接传输数据。 与之对应的另一种通信方式是远程直接调用(RPC),需要先建立通信连接然后传递数据。 2.1 简介 RabbitMQ是一个开源的消息队列系统,使用Erlang语言编写的,基于

    2024年02月16日
    浏览(31)
  • 【后端面经-Spring】Spring简介

    目录 【后端面经-Spring】Spring简介 1. Spring简介 2. Spring模块 3. Spring核心特性 4. Spring的后续拓展 面试模拟 参考资料 Spring是为了简化java项目开发设计的一款设计层面开源框架,其设计目的就是为了“简化开发”。 它使用分层架构,解决业务逻辑层和各层之间的松耦合。 核心特

    2024年02月16日
    浏览(27)
  • 【后端面经-数据库】MySQL的存储引擎简介

    目录 MySQL的存储引擎 0. 存储引擎的查看和修改 1. MyISAM 2. InnoDB 3. MEMORY 4. MERGE 5. 总结 6. 参考博客 mysql主要有四类存储引擎,目前主要使用InnoDB作为存储引擎。 查看当前数据库的默认存储引擎 查看当前数据库所支持的存储引擎 查看支持事务处理的存储引擎 设置新表的存储引擎

    2024年02月08日
    浏览(38)
  • 【后端面经-数据库】MySQL的事务隔离级别简介

    目录 0. 事务的概念 1. 三类问题 2. 事务隔离级别 3. 操作指令 4. 总结 5. 参考博文 事务指的是一连串的集中操作指令,一个事务的执行必须执行完所有的动作才能算作执行结束。事务具有四个特点,简记作 ACID : A -Atomicity: 原子性,事务的执行必须保证所有的动作都执行完毕;

    2024年02月08日
    浏览(37)
  • QT创建线程的方法:一步步教你创建和启动线程

    目录 线程概念及官方文档  一、线程的创建:继承方式 二、线程的创建:QObject 对象(moveToThread) 2.1 创建任务类 2.2 添加线程启动(定时器启动) 2.3 添加线程启动(start信号启动) 三、线程类的基本接口和使用 3.1启动 和终止线程 3.2 线程延迟 3.3 线程同步及通信方式 3.4

    2024年02月13日
    浏览(35)
  • Java多线程 - Java创建线程的4种方式

    1. Java创建线程有哪几种方式? 一个线程在Java中使用一个Thread实例来描述。Thread类是Java语言的一个重要的基础类,位于java.lang包中。Thread类有不少非常重要的属性和方法,用于存储和操作线程的描述信息。 Thread类的构造方法: 1.1 线程创建方法一:继承Thread类创建线程类 (

    2023年04月08日
    浏览(27)
  • 【Java 基础篇】Java多线程编程详解:线程创建、同步、线程池与性能优化

    Java是一门强大的编程语言,其中最引人注目的特性之一是多线程支持。多线程允许我们在同一程序中同时执行多个任务,这大大提高了应用程序的性能和响应能力。本文将深入介绍Java线程的基础知识,无论您是初学者还是有一些经验的开发人员,都将从中获益。 在计算机科

    2024年02月07日
    浏览(44)
  • Java 进阶(7) 创建线程

    1. 定义Thread类的⼦类,并重写该类的run()⽅法,该run()⽅法的⽅法体就代表了线程需要完成的任务,因此把run()⽅法称为线程执⾏体。 2. 创建Thread⼦类的实例,即创建了线程对象 3. 调⽤线程对象的start()⽅法来启动该线程 示例: 测试: 1. 定义Runnable接⼝的实现类,并重写该接⼝

    2023年04月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包