我们在⽣产环境中,程序代码、硬件、⽹络、协作软件等任⼀因素,都会引发意想不到的问题,所以排查产线问题⽐较困难,所以问题的定位体现了⼀名⼯程师的基础能⼒,问题的解决则体现了⼯程师的技能素养。......
1. List集合代表一个有序集合,集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。 ......
事务的基本特性 1. 原子性 - 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。......
CyclicBarrier循环栅栏和CountDownLatch 很类似 ,都能阻塞一组线程 当有大量线程相互配合,分别计算不同任务,并且需要最后统一汇总的时候,我们可以使用CyclicBarrier 。CyclicBarrier可以构造一个集结点,当某一个线程执行完毕,他就会到集结点等待,知道所有线程都到了集结点,那么该栅栏就被撤销,所以有线程在统一出发,继续执行剩下都任务。 ......
当线程1需要等待某个条件的时候 ,它就去执行 condition.await() 方法,一旦执行了 await()方法,线程就会进入阻塞状态 然后通常会有另外一个线程,假设是线程2,去执行对应的条件,知道这个条件成立,线程2就会去执行condition.signal() 方法,这是 JVM 就会被从阻塞的线程里找到那些等待该condition的线程,当线程1就会收到可执行信号的时候,他的线程状态就......
Semaphore 可以用来限制或管理数量有限资源的使用情况 信号量的作用是用来维护一个“许可证”,的计数,线程可以获取 许可证,那信号量剩余许可证就减一,线程也可以是否一个许可证,那剩余的许可证就加一,当信号量拥有的许可证为0时,那么下一个线程想获得许可证,就要进行等待,直到另外线程释放许可证......
如果对象在被创建后,状态就不能被修改,那么他就是不可变的 具有不变性的对象,一定是线程安全的,我们不需要采取任何额外的安全措施,也能保证线程安全......
在Atomic原子类-1 和 Atomic原子类-2 - 我们介绍了Atomic 的用法以及简单的底层实现,那么我们这片文章讲下Atomic 的累加器......
上文我们介绍了Atomic原子类 并且写了 AtomicInteeger 的使用 简单的介绍了底层的实现 CAS......
**可重入锁又名递归锁**,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提锁对象得是同一个对象或者class),不会因为之前已经获取过还没释放而阻塞。Java中ReentrantLock和synchronized都是可重入锁,可重入锁的一个优点是可一定程度避免死锁。......
随着 **IntelliJ Idea 2020.1**的发布,IDEA对我们最大的亮点就是支持中文了,对于英文不好的同学,可以说是一大福利......
什么是原子类 - 不可分割的 - 一个操作是不可中断的,即使多线程的情况下业可以保证 - java.util.concurrent.atomic - 原子的作用和锁类似,是为了保证线程并发情况下线程安全,不过原子类相比于锁,有一定的优势 - 优势:粒度更细,原子变量可以吧竞争范围缩小到便俩个级别,这就是我们可以获取哦最细粒度的,通常锁的粒度大于锁的粒度 - 优势:效率更高......
1 / 1