线程学习小结

线程:一个程序内部的一条执行流程

多线程:软硬件实行的多条执行流程的技术(多线程由cpu负责调度执行)

多线程的本质就是多个程序同时执行,但是进程同一时间只能有一个,所以线程会被cpu调度并且分配时间片

线程创建方式一:Thread类:启动线程需要调用strat方法不能调用run方法 不要把主线程任务放在启动子线程之前 run方法可以自己重写,在线程启动的时候会自动调用

线程创建方法二:实现Runnable接口,重写run方法。Runnable接口实现后只是创建了任务方法,要想实现线程还得交给Thread对象去调用start方法

线程创建方式三:实现callable接口和FutureTask类实现

1.创建任务对象,实现类实现callable接口,重写方法,封装需要做的事情,返回需要的数据 把callable类型的对象封装成FutureTask(线程任务对象)

2.交给Thead的start()方法调用,最后线程执行完毕后,通过FutureTask的get方法去获取线程任务的执行结果

前面俩种创建方式如果运行完后有数据需要返回,重写的run方法不能直接返回结果,第三个方式可以直接返回运行后的结果

Thread常用方法

java 复制代码
run() start()

getName()返回String类型,获取线程的名字

currentThread()静态方法,获取当前正在执行的线程对象

setName()给线程取名,也可在初始化时命名

sleep()静态方法 让当前线程休息

join()先执行该线程
相关推荐
iAm_Ike1 分钟前
JavaScript中模块化在游戏引擎开发中的资源调度作用
jvm·数据库·python
承渊政道2 分钟前
【动态规划算法】(似包非包以及卡特兰数问题深入解析)
数据结构·c++·学习·算法·leetcode·动态规划·哈希算法
m0_702036539 分钟前
Layui表单input框怎么设置只读或禁用
jvm·数据库·python
weixin_459753949 分钟前
php怎么调用快手开放平台_php如何接入快手授权登录流程
jvm·数据库·python
人道领域13 分钟前
【LeetCode刷题日记】二叉树层序遍历完全指南:从基础到LeetCode实战一篇搞定BFS模板,秒杀4道经典面试题
java·开发语言·数据结构·leetcode·面试·二叉树
Bechamz15 分钟前
大数据开发学习Day28
大数据·学习
承渊政道17 分钟前
CentOS 7部署Elasticsearch完整流程:避坑、基础操作、远程访问
java·linux·elasticsearch·系统架构·centos·远程工作·持续部署
weixin_4440129317 分钟前
SQL中如何实现基于条件的批量逻辑删除_过滤与更新状态位
jvm·数据库·python
m0_6146190618 分钟前
独立开发者 0 元启动包:网站、数据库、部署全搞定
笔记·学习
m0_6138562926 分钟前
Python中PyTorch模型如何显存优化_使用梯度检查点减少显存占用
jvm·数据库·python