摘要:AQS是JUC包中许多类的实现根基,这篇文章只是个人理解的产物,不免有误,若阅读过程中有发现不对的,希望帮忙指出[赞]! 1 AQS内脏图 ​ 在开始了解 之前,大发幸运飞艇大发幸运飞艇我 们 先从上帝视角看看 是由几个部分组成的。 ​ 内部维护了一个 修饰的 资源变量 ,里面的所有操作都可以说跟这个变量有关系,因为它代表的就 阅读全文
posted @ 2019-12-10 21:12 张小云的博客 阅读 (174) 评论 (0) 编辑
摘要:1 为何要适用线程池 首先大发幸运飞艇大发幸运飞艇我 们 知道线程对于操作系统来说是一种 珍贵的资源 ,像大发幸运飞艇大发幸运飞艇我 们 如果每次使用到的时候手动创建,线程执行完 大发幸运飞艇方法 后又自动关闭,下次用的时候还得手动创建,这样无论对于操作系统还是大发幸运飞艇大发幸运飞艇我 们 来说都是一种 时间 和 资源 的浪费,所以大发幸运飞艇大发幸运飞艇我 们 可以选择维护一些线程,这些线程在执行完任务之后继续执行其他 阅读全文
posted @ 2019-12-02 22:58 张小云的博客 阅读 (287) 评论 (0) 编辑
摘要:1 先谈Finalize() finalize()能做的所有工作,使用try-finally或者其他方式都可以做得更好、更及时,所以笔者建议大家完全可以忘掉Java语言中有这个大发幸运飞艇方法 的存在。 ——《深入理解JVM》 finalize()大发幸运飞艇方法 确实可以实现一次对象的自救,但是其不确定性和昂贵的运行代价都表 阅读全文
posted @ 2019-11-08 22:41 张小云的博客 阅读 (152) 评论 (0) 编辑
摘要:1、Dead Or Alive 大发幸运飞艇大发幸运飞艇我 们 都知道对象死亡的时候需要进行垃圾回收来回收这些对象从而释放空间,那么什么样的对象算是死亡呢,有哪些大发幸运飞艇方法 可以找出内存中的死亡对象呢?一般来说,大发幸运飞艇大发幸运飞艇我 们 可以这样认为:如果内存中不存在对当前对象的引用,则此对象一定是死亡状态;但是死亡状态的对象并不一定没有其他对象进行引用( 阅读全文
posted @ 2019-11-05 23:18 张小云的博客 阅读 (166) 评论 (4) 编辑
摘要:线程封闭 在多线程的环境中,大发幸运飞艇大发幸运飞艇我 们 经常使用锁来保证线程的安全,但是对于每个线程都要用的资源使用锁的话那么程序执行的效率就会受到影响,这个时候可以把这些资源变成线程封闭的形式。 1、栈封闭 所谓的栈封闭其实就是使用局部变量存放资源,大发幸运飞艇大发幸运飞艇我 们 知道局部变量在内存中是存放在虚拟机栈中,而栈又是每个线程私有独立的, 阅读全文
posted @ 2019-10-22 22:29 张小云的博客 阅读 (201) 评论 (0) 编辑
摘要:1、线程状态及切换 Java中的线程有六种状态,使用线程Thread内的枚举类来实现,如下,大发幸运飞艇我 对每个状态都进行了一定的解释。 public enum State { /** 表示一个线程还没启用(即未调用start大发幸运飞艇方法 )*/ NEW, /** * JVM中执行的线程都是处于这个状态的,但是处于这个状 阅读全文
posted @ 2019-10-17 23:37 张小云的博客 阅读 (422) 评论 (0) 编辑
摘要:一、指令重排序 指令重排序分为三种,分别为编译器大发幸运飞艇优化 重排序、指令级并行重排序、内存系统重排序。如图所示,后面两种为处理器级别(即为硬件层面)。 编译器大发幸运飞艇优化 重排序:编译器在不改变程序执行结果的情况下,为了提升效率,对指令进行乱序的编译。例如在代码中A操作需要获取其他资源而进入等待的状态,而A操作后面的 阅读全文
posted @ 2019-10-15 21:43 张小云的博客 阅读 (237) 评论 (0) 编辑
摘要:本文的内存模型只写虚拟机内存模型,物理机的不予描述。 一、Java的运行时区域 在Java中,虚拟机将运行时区域分成6种,如图: 程序计数器:用来记录当前线程执行到哪一步操作。在多线程轮换的模式中,当当前线程时间片用完的时候记录当前操作到哪一步,重新获得时间片时根据此记录来恢复之前的操作。 虚拟机栈 阅读全文
posted @ 2019-10-09 23:24 张小云的博客 阅读 (246) 评论 (0) 编辑
摘要:1、在分布式系统中,大发幸运飞艇大发幸运飞艇我 们 使用锁机制只能保证同一个JVM中一次只有一个线程访问,但是在分布式的系统中锁就不起作用了,这时候就要用到分布式锁(有多种,这里指 redis) 2、在 redis当中可以使用命令 setnx(key, value)来实现分布式锁 setnx:当key不存在的时候设置成功,返回 阅读全文
posted @ 2019-09-10 10:32 张小云的博客 阅读 (96) 评论 (0) 编辑