摘要:文章篇幅较短,对于一些 的顶级方法例如 并没有做过深的讲解,因为这些算是 的范畴,关于 可以看下另一篇文章—— "AQS" 。 一般被称作"计数器",作用大致就是数量达到了某个点之后计数结束,才能继续往下走。可以用作 流程控制 之类的作用,大流程分成多个子流程,然后大流程在子流程全部结束之前不动(子 阅读全文
posted @ 2020-04-11 13:14 张小云的博客 阅读(164) 评论(0) 推荐(0) 编辑
摘要:是一种类似于栅栏的存在,意思就是在栅栏开放之前你都只能被挡在栅栏的一侧,当栅栏移除之后,之前被挡在一侧的多个对象则同时开始动起来。 1. 如何使用CyclicBarrier 在介绍其原理之前,先了解一下 应该如何使用。 假设现在有这样的场景,我们需要开一个 会议 ,需要 张1、张2、张3三个人 参加 阅读全文
posted @ 2020-04-09 19:00 张小云的博客 阅读(172) 评论(0) 推荐(0) 编辑
摘要:在看这篇文章时,笔者默认你已经看过AQS或者已经初步的了解AQS的内部过程。 先简单介绍一下 ,跟 相同,是 可重入 的重量级锁。但是其用法则相当不同,首先 要 显式的调用lock方法 表示接下来的这段代码已经被当前线程锁住,其他线程需要执行时需要拿到这个锁才能执行,而当前线程在执行完之后要显式的释 阅读全文
posted @ 2020-04-01 23:27 张小云的博客 阅读(170) 评论(0) 推荐(1) 编辑
摘要:本文是自己对MySQL的 索引的理解,如有错误,还望不吝指出。 1 索引 索引这两个字着实有些太泛,而在我的理解中,其就是一个查字典的过程,比方说现在我们要从一本字典中查一个 字,那么我们可以从目录中的 字母找到这个 字,发现在 页,然后翻到 就可以看到关于 这个的解释、用法等。 可以看到我们不是从 阅读全文
posted @ 2020-02-20 17:22 张小云的博客 阅读(199) 评论(2) 推荐(0) 编辑
摘要:网上对于此类的文章已经十分饱和了,那还写的原因很简单——作为自己的理解笔记。 前言 ​ 此篇文章作为自己学习 的一些个人理解,使用的引擎是 。首先先讲讲 事务 的概念,在 中其对 事务 的描述是这样的: 事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该 阅读全文
posted @ 2020-02-07 17:32 张小云的博客 阅读(168) 评论(0) 推荐(1) 编辑
摘要:AQS是JUC包中许多类的实现根基,这篇文章基于个人理解的前提下完成,所以在结构上跟其他AQS文章有些差异。 1 AQS内脏图 tips:如果只是想看AQS的实现的话可以从第三节开始看,前面只是讲结构和使用 1.1 整体结构 在开始了解 之前,先看下 的内部结构,这样在看实现代码的时候至少有一个整体 阅读全文
posted @ 2019-12-10 21:12 张小云的博客 阅读(381) 评论(3) 推荐(2) 编辑
摘要:1 为何要适用线程池 首先我们知道线程对于操作系统来说是一种 珍贵的资源 ,像我们如果每次使用到的时候手动创建,线程执行完 方法后又自动关闭,下次用的时候还得手动创建,这样无论对于操作系统还是我们来说都是一种 时间 和 资源 的浪费,所以我们可以选择维护一些线程,这些线程在执行完任务之后继续执行其他 阅读全文
posted @ 2019-12-02 22:58 张小云的博客 阅读(347) 评论(0) 推荐(2) 编辑
摘要:1 先谈Finalize() finalize()能做的所有工作,使用try-finally或者其他方式都可以做得更好、更及时,所以笔者建议大家完全可以忘掉Java语言中有这个方法的存在。 ——《深入理解JVM》 finalize()方法确实可以实现一次对象的自救,但是其不确定性和昂贵的运行代价都表 阅读全文
posted @ 2019-11-08 22:41 张小云的博客 阅读(232) 评论(0) 推荐(0) 编辑
摘要:1、Dead Or Alive 我们都知道对象死亡的时候需要进行垃圾回收来回收这些对象从而释放空间,那么什么样的对象算是死亡呢,有哪些方法可以找出内存中的死亡对象呢?一般来说,我们可以这样认为:如果内存中不存在对当前对象的引用,则此对象一定是死亡状态;但是死亡状态的对象并不一定没有其他对象进行引用( 阅读全文
posted @ 2019-11-05 23:18 张小云的博客 阅读(435) 评论(4) 推荐(1) 编辑
摘要:线程封闭 在多线程的环境中,我们经常使用锁来保证线程的安全,但是对于每个线程都要用的资源使用锁的话那么程序执行的效率就会受到影响,这个时候可以把这些资源变成线程封闭的形式。 1、栈封闭 所谓的栈封闭其实就是使用局部变量存放资源,我们知道局部变量在内存中是存放在虚拟机栈中,而栈又是每个线程私有独立的, 阅读全文
posted @ 2019-10-22 22:29 张小云的博客 阅读(353) 评论(0) 推荐(0) 编辑