Java面试专题-多线程篇(2)- 锁和线程池

开篇介绍面试

你们好,公众号【Java极客思惟】近期会整理一些Java高频面试题分享给小伙伴,也但愿看到的小伙伴在找工做过程当中可以用获得!本章节主要针对Java一些多线程高频面试题进行分享。微信

Q1:多线程

乐观锁 和 悲观锁并发

乐观锁:性能

乐观锁(Optimistic Locking)实际上是一种思想。相对悲观锁而言,乐观锁假设认为数据通常状况下不会形成冲突,所在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,若是发现冲突了,则让返回用户错误的信息,让用户决定如何去作。this

悲观锁:spa

Java在JDK1.5以前都是靠 synchronized 关键字保证同步的,这种经过使用一致的锁定协议来协调对共享状态的访问,能够确保不管哪一个线程持有共享变量的锁,都采用独占的方式来访问这些变量。独占锁就是一种悲观锁,因此能够说:synchronized是悲观锁 。线程

Q2:设计

synchronized内置锁对象

用处:

synchronized做为线程同步的关键字,设计到锁的概念,Java内置锁是一个互斥锁,这就说明最多只有一个线程可以得到该锁,例如线程A 和 线程B,若是线程A尝试去得到线程B的内置锁,则线程A必须等待或者阻塞,直到线程B释放这个锁为止;若是线程B永不释放这个锁,那么线程A将永远处于等待或者阻塞状态。Java的对象锁和类锁在锁的概念上,与内置锁几乎是一致的,可是对象锁和类锁的区别是很是大的。

对象锁:

synchronized关键字修饰非静态方法用synchronized(this)做为同步代码块用synchronized(非this对象)的用法,锁的是对象,线程想要执行对应的同步代码,须要先得到对象锁。

类锁:

synchronized修饰静态方法、用synchronized(类.class)的用法,锁的是类,线程想要执行对应的同步代码,须要先得到对象锁。

对象锁:锁的是类的对象实例;

类锁:锁的是每一个类的Class对象,每一个类的Class对象在虚拟机中只有一个,因此类锁也只有一个。

Q3:

乐观锁必定就是好的吗?

乐观锁避免了悲观锁独占对象的现象,同时也提升了并发性能,可是也有如下几个缺点:

1. 乐观锁只能保证一个共享变量的原子操做。若是多一个或者几个变量,乐观锁将变得力不从心;

(但互斥锁能轻易解决,无论对象数量多少以及对象颗粒度大小。)

2. 长时间自旋可能致使开销大。假如CAS长时间不成功就会一直自旋,会给CPU带来很是巨大的开销

3. ABA问题。CAS的核心思想是经过对比内存值与预期值是否一致而判断内存值是否被改动过,但这个判断逻辑不够严谨,例如:假如A同窗倒了一杯水放桌子上,而后有事去忙,此时B同窗通过,看到桌子上的水,而后喝了半杯,喝完后再将水打满,实际看起来仍是一杯水,可是这杯水已经不是A同窗的那一杯水了,且实际上水是已经被B同窗改过了,这种状况对依赖过程值的情景的运算结果影响很大。

解决的方案:经过引入版本号,每次变量更新都把版本号加1.

Q4:

线程池的启动策略?

线程池的执行过程.png

  1. 线程池刚建立时,里面没有一个线程。任务队列是做为参数传进来的。不过就算队列里面有任务,线程池也不会立刻执行它们。

2. 当调用 execute() 方法添加一个任务时,线程池会作以下判断:

  • 若是正在运行的线程数量小于 corePoolSize ,那么立刻建立线程运行这个任务;
  • 若是正在运行的线程数量大于或等于 corePoolSize , 那么将这个任务放入队列;
  • 若是这时候队列满了,并且正在运行的线程数量小于 maximumPoolSize ,那么仍是要建立线程运行这个任务;
  • 若是队列满了,并且正在运行的线程数量大于或等于 maximumPoolSize ,那么线程池会抛出异常,告知调用者"我不能再接受任务了"。
  1. 当一个线程完成任务时,它会从队列中取下一个任务来执行。
  2. 当一个线程无事可作,超过必定的时间 (keepAliveTime) 时,线程池会进行判断,若是当前运行的线程数大于 corePoolSize ,那么这个线程就会被停掉。因此线程池的全部任务完成后,它最终将会收缩到 corePoolSize 大小。

明天,会介绍多线程一些深刻的知识,长按二维码关注我吧~

祝你们都能拿到心仪的offer!


点关注、不迷路

若是以为文章不错,欢迎关注点赞收藏,大家的支持是我创做的动力,感谢你们。

若是文章写的有问题,请不要吝啬,欢迎留言指出,我会及时核查修改。

若是你还想更加深刻的了解我,能够微信搜索「Java极客思惟」进行关注。天天8:00准时推送技术文章,让你的上班路不在孤独,并且每个月还有送书活动,助你提高硬实力!

相关文章
相关标签/搜索