摘要:
两阶段终止: 在一个线程中如何优雅的终止另一个线程,让这个线程自己乖乖释放资源,然后终止; stop()方法,资源不要了,直接灭了线程; System.exit(int)方法,进程我都不要了; 使用interrupt和catch的配合使用: 没有休眠,interrupted会被置true; 有休眠状 阅读全文
posted @ 2025-03-24 20:53
烟雨断桥
阅读(3)
评论(0)
推荐(0)
摘要:
不可变类设计 final的使用: 修饰属性或者private而且没有set方法,保证为只读属性; 修饰类,防止子类破坏不可变性; String的底层是private final char[] value; 当传入char数组的时候,会给value复制一份value【保护性拷贝:防止共享】; fina 阅读全文
posted @ 2025-03-24 18:43
烟雨断桥
阅读(7)
评论(0)
推荐(0)
摘要:
在多核状态下:某个线程执行到带lock的指令的时候,cpu会让总线锁住,知道把这个指令执行完毕,然后在开启总线,以保证多个线程的原子性; CAS和volatile的相关工具类【JUC】: 原子整数: AtomicBoolean AtomicInteger AtomicLong 底层都是CAS:com 阅读全文
posted @ 2025-03-24 17:56
烟雨断桥
阅读(23)
评论(0)
推荐(0)
摘要:
JMM 主存:共享资源;工作内存:局部变量。 原子性:保证执行不受线程上下文切换的影响【并发的影响】; 加锁; 可见性:保存不受cpu缓存的影响【JIT,缓存优化】; volatile:保证变量在多个线程的可见性【轻量级】; synchronized:也可以保证所见性,释放锁时触发内存同步【重量级】 阅读全文
posted @ 2025-03-24 14:55
烟雨断桥
阅读(21)
评论(0)
推荐(0)
摘要:
ReentrantLock: 互斥:保证共享资源的原子性; 同步:使用条件变量来达到线程通信【wait-notify】; 相对于synchronized锁它具备以下特点: 可中断; 可设置超时时间 可以设置公平锁 支持多个条件变量: reentrantLock.lock(); try{ //临界区 阅读全文
posted @ 2025-03-24 11:58
烟雨断桥
阅读(12)
评论(0)
推荐(0)

浙公网安备 33010602011771号