线程学习小结

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

多线程:软硬件实行的多条执行流程的技术(多线程由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()先执行该线程
相关推荐
qq_571099358 分钟前
学习周报四十四
学习
码上小翔哥20 分钟前
Spring Boot Redis 缓存序列化踩坑记:GenericJackson2JsonRedisSerializer 的数组反序列化陷阱
java·redis
pq21720 分钟前
LambdaMetafactory(fastjson2使用的黑科技)
java
不知名的老吴21 分钟前
C++20的jthread使用基础及实例分析
jvm
d111111111d23 分钟前
MQTT+STM32+ESP8266网络程序分层+韦老师
笔记·stm32·单片机·嵌入式硬件·学习·php
SamDeepThinking23 分钟前
你认为从0-1开发一个项目最难的地方是什么?
java·后端·架构
Devin~Y27 分钟前
大厂Java面试实战:Spring Boot/Cloud、Redis/Kafka、JVM调优与Spring AI RAG(内容社区UGC+AIGC客服场景)
java·jvm·spring boot·redis·spring cloud·kafka·mybatis
小宋加油啊33 分钟前
学习CBOR
学习
青山师37 分钟前
CompletableFuture深度解析:异步编程范式与源码实现
java·单例模式·面试·性能优化·并发编程
AI人工智能+电脑小能手37 分钟前
【大白话说Java面试题 第42题】【JVM篇】第2题:JVM内存模型有哪些组成部分?
java·开发语言·jvm·面试