线程学习小结

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

多线程:软硬件实行的多条执行流程的技术(多线程由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()先执行该线程
相关推荐
Jetev2 分钟前
如何配置MongoDB驱动以支持快速的主备切换感知_SRV记录与拓扑监控
jvm·数据库·python
m0_631529823 分钟前
golang如何实现目录大小统计_golang目录大小统计实现方案
jvm·数据库·python
2301_769340676 分钟前
Golang怎么限制请求Body大小_Golang如何防止客户端发送过大的请求体【避坑】
jvm·数据库·python
超梦dasgg7 分钟前
Sentinel生产环境实战全解
java·微服务·sentinel
青云计划9 分钟前
MySQL技术文档
java·mysql
qq_25183645710 分钟前
基于java 汽车检修管理系统设计与实现 论文
java·开发语言·汽车
Jetev13 分钟前
Django怎么优雅发送邮件_Python配置SMTP后端实现异步通知
jvm·数据库·python
量子炒饭大师14 分钟前
【Linux系统编程】Cyberpunk在霓虹丛林中构建堡垒 ——【基础开发工具(1)】一文带你初步了解 软件包管理器 并 快速上手 yum和apt 工具
java·linux·运维·apt·yum·软件包管理器
woxihuan12345618 分钟前
golang如何读写YAML配置文件_golang YAML配置文件读写解析
jvm·数据库·python
彳亍10119 分钟前
mysql如何实现数据库按月分表_利用分区表优化查询性能
jvm·数据库·python