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类
    • 不会释放锁,抱着锁睡觉
    • 任何地方使用
    • 需要捕获异常
    • 到时自动醒来
posted @   jpy  阅读(1)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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
点击右上角即可分享
微信分享提示