Loading

摘要: 相同点 都是用来保护资源线程安全的 都可以保证可见性 可见性大致可以这样理解,线程A的加解锁的过程会对B线程完全可见,也就是说,线程A的加锁和解锁当时的锁持有的状态,线程B是可以获取到的,这也就体现到了hanppens-before针对synchronized的一个原则。 对于Lock而言,他也是可 阅读全文
posted @ 2022-03-24 23:59 邓小白 阅读(236) 评论(0) 推荐(0) 编辑
摘要: monitor的作用 我们都知道synchronized的作用是用来保证修饰的代码或者方法执行有且只有一个线程执行,也就是锁。那么在执行被锁住的方式时,synchronized就需要通过monitor来记录和保证锁的状态。所以monitor这里的作用其实就是起到了控制synchronized什么时候 阅读全文
posted @ 2022-03-24 23:55 邓小白 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 悲观锁 概念 悲观锁在已最坏的打算来考虑结果,它会在每次资源操作的同时,都需要对他进行加锁,避免其他的线程来抢占。在绝对上保证我这次执行是没有问题的。 适用场景 悲观锁适用于竞争激励的场景,例如高并发的读写操作。 典型案例 synchronized 关键字 public class TestLock 阅读全文
posted @ 2022-01-30 23:54 邓小白 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 锁的七大类 在Java的多线程中,有很多种锁,每种锁可能同时占有多个标准,比如ReentranLock即可是中断锁,又可以是可重入锁。 那么根据分类标准,我们可以把这些锁分为以下七大标准,分别是: 偏向锁/轻量级锁/重量级锁 可重入锁/非可重入锁 共享锁/独占锁 公平锁/非公平锁 悲观锁/乐观锁 自 阅读全文
posted @ 2022-01-29 15:22 邓小白 阅读(1182) 评论(0) 推荐(0) 编辑
摘要: 下载官方安装包 下载地址:https://www.macports.org/install.php 选择自己的下载版本 安装MacPorts 步骤一:断开网络 步骤二:安装安装包 如果步骤一没断网成功会导致安装卡住,如果卡住了,需要强制退出软件 首先使用option+command+esc打开强制退 阅读全文
posted @ 2022-01-29 15:21 邓小白 阅读(9506) 评论(0) 推荐(0) 编辑
摘要: 什么是Java Agent Java Agent是在Java 1.5版本之才有的东西,他可以构建一个独立Java服务外的一个代理程序,也就是Agent。通常会用它来做一下Java服务的监控,或者替换其他JVM上的程序,还可以实现虚拟机上的AOP功能。 Agent分为两种,一种是程序启动前触发的,一种 阅读全文
posted @ 2022-01-29 15:20 邓小白 阅读(1641) 评论(0) 推荐(0) 编辑
摘要: 关闭线程池的方法 shutdown() 在调用这个关闭方法时,线程池会根据我们配置的拒绝策略来拒绝掉想要进来的线程,也就是说吧创建执行线程的入口给关闭掉了,直到线程池内的所有线程都执行完成。在调用这个方法完毕之后,并不代表这个线程池就真的都停掉了,只能说他不让其他线程进来了,然后等到线程池内的线程执 阅读全文
posted @ 2022-01-29 15:20 邓小白 阅读(1834) 评论(0) 推荐(0) 编辑
摘要: 在了解线程复用原理之前,我们再回顾一下之前在线程池的初始配置详解的文章中提到的创建线程的流程 在线程提交线程任务的时候,线程池会提前判断线程池中执行的任务是否达到核心线程数了,如果达到了核心线程数那么他就会将这个多出来的任务塞入队列中,如果发现队列中的任务数也达到了上限,这个时候线程池就会开始在核心 阅读全文
posted @ 2022-01-29 15:20 邓小白 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 我们在创建自己的线程池时,会时常因为不知道给核心线程数或者最大线程数设置多少为好,其实这个时需要看你的线程池的使用场景和服务器CUP的配置,根据这些前置条件,我们再去判断如何去设置合适的线程数,并不是我们想设置多少线程数大小就可以设置多少,这样可能会导致线程发挥不到最大的性能,甚至还有可能会导致服务 阅读全文
posted @ 2022-01-29 15:19 邓小白 阅读(1719) 评论(2) 推荐(0) 编辑
摘要: 线程被拒绝的场景 结合上面的图,我们思考一个问题,当我们创建一个线程池的时候,他会有最大的线程数,和线程任务缓存数。如果系统的线程任务突然暴增,这个时候,线程池的线程达到最大值,线程队列中的缓存数也达到了最大值,这个时候,没有挤进线程池的该怎么办。 在使用线程池的时候,可能会遇到两种情况,导致线程会 阅读全文
posted @ 2022-01-29 15:18 邓小白 阅读(1063) 评论(0) 推荐(0) 编辑