考点介绍:
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作用于静态方法和非静态方法的区别
非静态方法:给对象加锁(可以理解为给这个对象的内存上锁,注意 只是这块内存,其他同类对象都会有各自的内存锁),这时候在其他一个以上线程中执行该对象的这个同步方法(注意:是该对象)就......
帖子还没人回复快来抢沙发