JAVA多线程基础

1.创建线程的方法

继承Thread类:简单,但Java单继承,扩展性差。

实现Runnable接口:任务与线程分离,可复用。

实现Callable接口:可返回结果

2.线程的六种状态

NEW:新建,未调用start()

RUNNABLE:可运行(包括就绪和运行中)

BLOCKED:阻塞,等待监视器锁(synchronized)

WAITING:等待,无限期等待(object.wait()/thread.join())

TIMED_WAITING:超时等待(sleep(ms)/wait(ms))

TERMINATED:终止

3.线程安全

比如说一个线程完成一个任务后,再去做另一个任务,可能会把前者的信息带到这个任务中,这样会造成线程不安全

eg:第一个用户登陆后,线程复用,第二个用户登录,可能导致第二个用户看到第一个用户的信息,这就是线程不安全

4.锁:

可以保证线程安全,比如说一个线程在做事的时候,给他锁上,把所有东西做完才释放。

也可以说,把这个线程锁上只服务一个任务,一定能保证线程安全

5.可重入锁与不可重入锁

可重入:A线程把线程id给到object类(加锁),做一半做其他事了,但是加上的id标识还在,然后再回来还能进去,继续操作这个类,那么这就是可重入锁

相关推荐
wangbing11251 小时前
springboot应用关闭时触发动作
java·spring boot·后端
weixin_460443564 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
海鸥-w7 小时前
什么是AOP
java
Cc.Y7 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
paopaokaka_luck8 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787058 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
阿森_dev8 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
by209998 小时前
C++ 多态:同一个基类接口,调用不同的函数
开发语言·c++·经验分享·多态
笔墨登场说说8 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python
Sarvartha8 小时前
Lambda 表达式和函数式接口
java·开发语言