【校招VIP】多线程和并发之 Lock锁和原子锁

12月08日 收藏 0 评论 0 java开发

【校招VIP】多线程和并发之 Lock锁和原子锁

考点介绍:

  java中的锁机制是用来处理面对多线程并发情况下数据的一致性的。在我们操作一个对象或者调用一个方法前加锁,这样当其他线程也对该对象和方法进行访问时就需要获得锁,如果该锁被其他线程持有,那么该线程则进入阻塞队列等待获得锁。这样就保证了在同一时间只有一个线程在对该对象进行操作。

答案详情解析和文章内容可扫下方海报二维码或点击链接即可查看!

一、考点试题

1、如何让 Java 的线程彼此同步?

解答:1.synchronized

2.volatile

3.ReenreantLock

4.使用局部变量实现线程同步

2、一般有哪几种方式降低锁的竞争程度?

解答:我们一般有三种方式降低锁的竞争程度:

减少锁的持有时间

降低锁的请求频率

......

3、自旋锁的优点是什么?又存在哪些问题?

解答:自旋锁的优点

1、自旋锁不会使线程状态发生切换,一直处于用户态,即线程一直都是active的;不会使线程进入阻塞状态,减少了不必要的上下文切换,执行速度快......

4、死锁产生的条件是什么?

解答:互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放......

二、考点文章

1、Lock锁的使用

在Java多线程中,可以使用synchronized关键字实现线程之间的同步互斥,在jdk1.5后新增的ReentrantLock类同样可达到此效果,且在使用上比synchronized更加灵活......

2、【校招VIP】你知道Java里有多少种锁吗?(15种锁最全总结)

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下......

3、【校招VIP】java 关于锁常见面试题

synchronized作用于静态方法和非静态方法的区别

非静态方法:给对象加锁(可以理解为给这个对象的内存上锁,注意 只是这块内存,其他同类对象都会有各自的内存锁),这时候在其他一个以上线程中执行该对象的这个同步方法(注意:是该对象)就......

移动端:https://m.xiaozhao.vip/dTopic/detail/1441

PC端:https://xiaozhao.vip/dTopic/detail/1441

C 0条回复 评论

帖子还没人回复快来抢沙发