论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
【后端面经-Java】Java创建线程的方法简介 ...
【后端面经-Java】Java创建线程的方法简介
鼠扑
论坛元老
|
2023-6-20 12:33:08
|
显示全部楼层
|
阅读模式
楼主
主题
2139
|
帖子
2139
|
积分
6417
目录
1. 线程的基本概念
1.1 线程
1.2 线程状态和生命周期
2. 创建线程的四种方法
2.1 继承Thread类
2.2 实现Runnable接口
2.3 实现Callable接口
2.4 使用线程池
3. 参考资料
1. 线程的基本概念
1.1 线程
学过操作系统的同学应该不陌生,线程是计算机中的最小调度单元,一个进程可以有多个线程,执行并发操作,提高任务的运行效率
1.2 线程状态和生命周期
线程状态包括:
新建(new)
:线程创建而尚未启动的阶段;
就绪态(runnable/ready)
:线程已经启动,等到CPU资源分配
运行态(running)
:线程分配到CPU资源,正式运动
阻塞态(blocked)
:在运行过程中由于存在资源缺乏等原因,进入阻塞态等到资源条件满足,再次执行;
等待态(waiting)
:线程进入I/O等操作或者线程执行 sleep()、join() 或 wait(timeout) 方法时,,等待响应,这时候进入等待态,其他线程可接着执行;
超时等待(timed waiting)
:线程进入超时等待态类似于等待态,但是有时间限制,等待时间到了,线程会自动进入就绪态,等待CPU资源调度;
终止态(terminated)
:线程执行完毕或者出现异常,进入终止态,线程生命周期结束。
线程生命周期如图所示:
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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
鼠扑
论坛元老
这个人很懒什么都没写!
楼主热帖
Java 基于Apache POI实现Excel读写操作 ...
XAF新手入门 - 类型子系统(Types Info ...
Dapr 知多少 | 分布式应用运行时 ...
springboot开启单元测试的方法分享 ...
5.15日 搭建青龙面板教程——狗东跑跑 ...
记录一次NoSuchMethodError问题的解决 ...
C#生成putty格式的ppk文件(支持passph ...
Python 封装SNMP调用接口
风险洞察之事件总线的探索与演进 ...
SQLSERVER大小写转换方法
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
人工智能
MES
虚拟化与私有云
Mysql
快速回复
返回顶部
返回列表