![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 58
Trank
一以贯之的努力,不得懈怠的人生!
展开
-
Java中的锁机制?(体系梳理篇)
在面试过程中,多线程及并发编程已经是必问的项目,并发编程的实现依赖Java中的锁机制,那么在Java中存在几种锁机制呢?原创 2024-03-16 10:16:42 · 382 阅读 · 1 评论 -
多线程-并发编程、面试难点(线程合集)
它可以应用到标记某个线程的状态,比如在后面即将谈论到的Lock类中,就有一个字段state通过volatile标记,当锁被获取后,就会修改这个值,通知其他线程锁已被获取,让其他线程去排队。答:ThreadLocal类保证了每个访问这个变量的线程在它自己的线程内都会有这个变量的拷贝,不受其他线程的影响,也就是说,它保证了在操作当前变量的时候不会收到其他线程的影响。什么叫弱引用,当一个对象只被弱引用引用时,在垃圾回收器执行垃圾回收时,该对象就会被回收,即使 JVM 内存充足,也可能会被回收。原创 2024-03-15 17:56:59 · 375 阅读 · 1 评论 -
多线程面试-基础篇(多线程系列连更,后续可查看合集)
wait方法也是让当前线程阻塞,但不一样的是,wait方法不会去自动苏醒,并且它会释放当前线程持有的锁,只有当另外一个线程调用休眠线程的notify方法才会苏醒。答:sleep方法不会释放锁,wait方法会释放锁,sleep方法只是让当前线程休眠,如果当前线程持有锁,不会释放锁,当休眠结束后线程自动苏醒,仍旧会执行当前线程。线程死锁是指,在多线程情况下,A线程持有锁需要B线程所占有的资源,B线程持有锁需要A线程占有的资源,两个互相掣肘,导致线程死锁。答:可以采取嵌套锁,先获取A锁,再获取B锁。原创 2024-03-15 15:34:33 · 502 阅读 · 1 评论