09 2021 档案
摘要:1、java8新特性 2、java13新特性 3、service mesh 、 isol 4、java中的<T> < ?>
阅读全文
摘要:一、隔离级别 数据库事务的4个基本特征,ACID Atomic(原子性):事务中包含的操作被看作一个整体的业务单元,这个业务单元中的操作要么全部成功、要么全部失败,不会出现部分失败,部分成功的场景。 Consistency(一致性):在事务完成时,必须使所有的数据保持一致状态 Isolation(隔
阅读全文
摘要:注:灰色部分为线程私有,占用空间较小。橙色部分是所有线程共享,存在垃圾回收 一、类装载器(Class loader) 虚拟机自带的加载器 启动类加载器(Bootstrap)C++ 扩展类加载器(Extension)Java 应用程序类加载器(AppClassLoader),Java也叫系统类加载器,
阅读全文
摘要:生产者消费者模型是我们学习多线程知识的一个经典案例,一个典型的生产者消费者模型如下: public void produce() { synchronized (this) { while (mBuf.isFull()) { try { wait(); } catch (InterruptedExc
阅读全文
摘要:把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。 原子性意味着个时刻,只有一个线程能够执行一段代码,这段代码通过一个monitor object保护。从而防止多个线程在更新共享状态时相互冲突。可见性则更为微
阅读全文
摘要:ReentrantLock和Synchronized的区别 其实ReentrantLock和Synchronized最核心的区别就在于Synchronized适合于并发竞争低的情况,因为Synchronized的锁升级如果最终升级为重量级锁在使用的过程中是没有办法消除的,意味着每次都要和cpu去请求
阅读全文
摘要:提高java的并发编程,就不得不提volatile关键字,不管是在面试还是实际开发中 volatile都是一个应该掌握的技能。他的重要性不言而喻。因此也有必要学好。 一、为什么要用到volatile关键字? 使用一个新技术的原因肯定是当前存在了很多问题,在Java多线程的开发中有三种特性:原子性、可
阅读全文
摘要:sleep和wait的区别是面试中一个非常常见的问题,因为从表象来看,好像sleep和wait都能使线程处于阻塞状态,但是却有着本质上的却别。这篇文章就来好好分析一下。 整体的区别其实是有四个: 1、sleep是线程中的方法,但是wait是Object中的方法。 2、sleep方法不会释放lock,
阅读全文
摘要:java除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁的功能。而且ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。这篇文章主要是从使用的角度来分析一下ReentrantLock。 一、简介 R
阅读全文
摘要:一、synchronized简介 synchronized 是Java语言的一个关键字,它本身的意思为同步,是用来保证线程安全的,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。 synchronized一句话来解释其作用就是:能够保证同
阅读全文
摘要:所谓线程的“工作内存”到底是个什么东西?有的人认为是线程的栈,其实这种理解是不正确的。看看JLS(java语言规范)对线程工作 内存的描述,线程的working memory只是cpu的寄存器和高速缓存的抽象描述。 可能 很多人都觉得莫名其妙,说JVM的内存模型,怎么会扯到cpu上去呢?在此,我认为
阅读全文