2020-09-24

本文探讨了加锁机制如何实现线程同步,介绍了Java中断机制的优雅使用方法,包括中断标志位的设置和感知,以及偏移量的概念。还特别强调了ABA问题的改进版和解锁的最佳实践——始终在finally块中释放锁。
摘要由CSDN通过智能技术生成

1 加锁的本质

通过阻塞和唤醒机制,使多个线程序列化地访问同一个资源


2 如何优雅的停止线程
    java中断机制是一种协作机制,也就是
    使用 t1.interrupted()设置中断标志位,然后再感知判断标志位处理
    
    
    Thread.currentThread().interrupted() 会清除中断标志位
    Thread.currentThread().isInterrupted() 不会清除中断标志位
    sleep期间也能感知到中断信号,而且也会清除中断标志位
    LockSupport.park() 不会清除中断标志位

    System.out
    stdout 是有缓冲区的
    stderr 没有缓冲区

    偏移量 是相对于谁的偏移,是相对于当前对象的内存地址偏移量

 

ABA问题增加版本号

4 解锁要放在finally中
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值