1.juc基本概念
1、概述
java uitl concurrent包下
相关包:
-
java.util.concurrent
-
java.util.concurrent.atomic
-
java.util.concurrent.locks
-
Condition
-
Lock
-
ReentrantLock 可重入锁(常用)
-
ReentrantReadWriteLock.ReadLock 读锁
-
ReentrantReadWriteLock.WriteLock 写锁
-
-
ReadWriteLock
-
-
java.util.function 函数式编程
2、进程和线程
java默认线程:main和Gc
java并不能真的开启线程,最后需调用本地方法,本地方法调用c++,java无法直接操作硬件
private native void start0();
- 进程:一个程序包含多个进程,是资源分配的单位
- 线程:一个进程包含多个线程,是cpu调度和执行的单位
- Thread,Runable,Callable
2.1、并发和并行
- 并发:多线程操作同一个资源
- 单核cpu下快速交替
- 并行:
- 多核cpu下多个线程可以同时执行
- cpu核数:Runtime.getRuntime().availableProcessors();
并发编程本质:充分利用cpu资源
public enum State {
NEW,//新建
RUNNABLE,//运行
BLOCKED,//阻塞
WAITING,//等待,死死等
TIMED_WAITING,//超时等待
TERMINATED;//终止
}
2.2、wait和sleep
- wait
- Object类
- 会释放锁
- 在同步代码块中使用
- 不需要捕获异常
- notify()或notifyAll唤醒
- sleep
- Thread类
- 不会释放锁,抱着锁睡觉
- 任何地方使用
- 需要捕获异常
- 到时自动醒来
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY