
并发
人做事
人做事,事教人
展开
-
面试必问:多线程与线程池
前言 前几章都在讲一些锁的使用和原理,主要是为了保证多线程情况下变量的原子性,但这并不是说多线程不好,合理利用还是有好处的。至于什么好处,看下面内容就懂了,先打个比方吧(谁叫比方,上来挨打):假如你体育考试,要跑1000米,你现在有两个选择:一个人跑完1000米。找三个人陪你一起跑,每个人跑250米就好两种方案你选哪个?今天写一下面试必问的内容:多线程与线程池。主要从以下几方面来说:什么是线程(什么是多线程)线程状态多线程的优点和弊端线程池的好处线程池的新建线程池状态线程池执行任务线程池异常.原创 2020-06-07 20:54:54 · 1018 阅读 · 0 评论 -
面试必问:乐观锁与悲观锁
前言 小孩子才做选择,我全都要,今天写一下面试必问的内容:乐观锁与悲观锁。主要从以下几方面来说:何为乐观锁何为悲观锁乐观锁常用实现方式悲观锁常用实现方式乐观锁的缺点悲观锁的缺点写文章的时候突然收到朋友发来的消息,说乌兹退役了,LPL0006号选手断开连接。愿你鲜衣怒马,一日看尽长安花,历尽山河万里,归来仍是曾经那个少年。来,跟我一起喊一句:大道至简-唯我自豪1、何为乐观锁 乐观锁总是假设事情向着好的方向发展,就比如有些人天生乐观,向阳而生!乐观锁总是假设最好的情况,每次去拿数据的时候都认.原创 2020-06-03 20:03:13 · 1093 阅读 · 1 评论 -
AQS(AbstractQueuedSynchronizer)的实现原理
前言 前一篇文章讲了一下AQS是什么以及AQS可重写的方法、提供的模板方法,本篇就从以下几点来写一下同步器的实现原理。同步队列独占式同步状态获取与释放共享式式同步状态获取与释放超时获取同步状态同步队列实现原理 同步器依赖内部的同步队列(一个FIFO双向队列)来完成同步状态的管理,当前线程获取同步状态失败时,同步器会将当前线程以及等待状态等信息构建为一个节点(Node)并将其加入同步队列,同步会阻塞当前线程,当同步状态释放时,会将首节点中的线程唤醒,使其再次尝试获取同步状态。节点的主要属性有以.原创 2020-05-30 18:25:58 · 314 阅读 · 0 评论 -
项目中有用过锁吗?能解释一下什么是AQS(AbstractQueuedSynchronizer)吗?
1 前言 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,如读写锁)。在以前,Java程序是靠synchronized来实现锁功能的,而在Java SE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,他提供了与synchronized关键字类似的同步功能,只是在使用时需要显式的获取锁和释放锁,虽然它缺少了synchronized提供的隐式获取释放锁的便捷性,但是却拥有了锁获取和释放的可操作性、可中.原创 2020-05-28 19:17:18 · 961 阅读 · 0 评论