【多线程】公平锁和非公平锁

公平锁公平锁其实很好理解,可以看作我们现实生活中的排队取餐,按照先来先得的规矩来依次取餐,公平锁也是这样,当有线程排队获取锁的同时,等待越久的线程则优先获取锁,这样就能保证每个线程获取锁的顺序和公平性。场景假设有4个线程来尝试获取锁,当线程1获取到锁之后,线程2、3、4就会在队列中等待,然后等到线程
多线程 2022年03月27日 113次浏览

【多线程】synchronized与Lock的区别

相同点都是用来保护资源线程安全的都可以保证可见性可见性大致可以这样理解,线程A的加解锁的过程会对B线程完全可见,也就是说,线程A的加锁和解锁当时的锁持有的状态,线程B是可以获取到的,这也就体现到了hanppens-before针对synchronized的一个原则。对于Lock而言,他也是可以保证线
多线程 2022年03月23日 108次浏览

【多线程】synchronized背后的monitor锁

monitor的作用我们都知道synchronized的作用是用来保证修饰的代码或者方法执行有且只有一个线程执行,也就是锁。那么在执行被锁住的方式时,synchronized就需要通过monitor来记录和保证锁的状态。所以monitor这里的作用其实就是起到了控制synchronized什么时候获
多线程 2022年03月21日 111次浏览

【多线程】什么是悲观锁和乐观锁

悲观锁概念悲观锁在已最坏的打算来考虑结果,它会在每次资源操作的同时,都需要对他进行加锁,避免其他的线程来抢占。在绝对上保证我这次执行是没有问题的。适用场景悲观锁适用于竞争激励的场景,例如高并发的读写操作。典型案例synchronized关键字publicclassTestLockimplements
多线程 2022年01月30日 166次浏览

【多线程】锁的七大分类

锁的七大类在Java的多线程中,有很多种锁,每种锁可能同时占有多个标准,比如ReentranLock即可是中断锁,又可以是可重入锁。那么根据分类标准,我们可以把这些锁分为以下七大标准,分别是:偏向锁/轻量级锁/重量级锁可重入锁/非可重入锁共享锁/独占锁公平锁/非公平锁悲观锁/乐观锁自旋锁/非自旋锁可
多线程 2022年01月20日 191次浏览

【分享】Git常用命令

回退版本gitresetHEAD^  #回退所有内容到上一个版本gitresetHEAD^  a.py #回退a.py这个文件的版本到上一个版本gitreset–soft  HEAD~3 #向前回退到第3个版本gitreset–hard  origin/master #将本地的状态回退到和远程的一样
分享 Git 2022年01月17日 159次浏览

【软件】Mac中MacPorts安装和使用

下载官方安装包下载地址:https://www.macports.org/install.php选择自己的下载版本安装MacPorts步骤一:断开网络步骤二:安装安装包如果步骤一没断网成功会导致安装卡住,如果卡住了,需要强制退出软件首先使用option+command+esc打开强制退出应用程序窗口
Mac 2022年01月14日 167次浏览

【多线程】线程复用的原理

在了解线程复用原理之前,我们再回顾一下之前在线程池的初始配置详解的文章中提到的创建线程的流程
多线程 2021年12月27日 161次浏览

【线程池】如何正确的关闭线程池

关闭线程池的方法shutdown()在调用这个关闭方法时,线程池会根据我们配置的拒绝策略来拒绝掉想要进来的线程,也就是说吧创建执行线程的入口给关闭掉了,直到线程池内的所有线程都执行完成。在调用这个方法完毕之后,并不代表这个线程池就真的都停掉了,只能说他不让其他线程进来了,然后等到线程池内的线程执行完
多线程 2021年12月26日 155次浏览

【Agent】Java Agent 介绍与使用

什么是JavaAgent
Java 2021年12月18日 159次浏览