ICode9

精准搜索请尝试: 精确搜索
  • JUC基础(20):JUC强大的辅助类2021-09-17 23:37:04

    1 减少计数 CountDownLatch   CountDownLatch 类可以设置一个计数器,然后通过 countDown 方法来进行减 1 的操作,使用 await 方法等待计数器不大于 0,然后继续执行 await 方法 之后的语句。   CountDownLatch 主要有两个方法,当一个或多个线程调用 await 方法时,这些线程会阻塞  

  • JUC基础(21):ReentrantReadWriteLock读写锁2021-09-17 23:35:38

        1 读写锁介绍   现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁。在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以 应该允许多个线程同时读取共享资源;但是如果一个线程想去写这些共享资源,就不应该允许其他线程对该资源进行读和写的

  • juc并发编程学习笔记上(尚硅谷)2021-09-13 15:33:08

    1、什么是JUC 1.1JUC简介 JUC就是java.util .concurrent工具包的简称。这是一个处理线程的工具包,JDK 1.5开始出现的。 1.2进程与线程 进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在当代面向线程

  • JUC学习2021-09-13 12:34:03

    JUC学习 1、 Lock锁 synchronized public class SaleTicketDemo01 { public static void main(String[] args) { //并发,多个线程操作一个资源 Ticket ticket = new Ticket(); //函数式接口 //创建线程,把资源丢进线程中 //jdk 1.

  • AQS总结2021-09-11 13:33:54

    java并发编程核心JUC,JUC的核心是AQS,而AQS的核心是Unsafe使用的CAS(compare and swap)。 AQS全称:AbstractQuenedSynchronizer抽象的队列式同步器。 AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它。如:ReentrantLock/Semaphore/CountDownLatch...。

  • JUC锁框架源码阅读-AQS+Zookeeper实现分布式锁2021-09-10 10:31:57

    介绍 1.创建一个永久节点 2.竞争锁的时候同样的的key 所有线程都往永久节点插入指定key name的临时节点(节点不允许重复只会有一个插入成功) 3.插入失败的开启对永久节点的监听 4.当时获得锁的线程down机或者删除会触发监听。然后尝试获取CLH第一个线程节点 尝试重新获取锁 代码已

  • 面试必备系列JUC(6)--八锁详解2021-09-06 20:34:28

    文章目录 前言一、锁总述二、乐观锁 VS 悲观锁2.1 基本概念2.2 实现方式2.3 优缺点和适应场景 三、公平锁 VS 非公平锁3.1 基本概念3.2 源码解析 四、可重入锁 VS 非可重入锁4.1 基本概念4.2 可重入锁的原理4.3 代码解析 五、独占锁和共享锁5.1 基本概念5.2 底层原理 六、

  • JUC并发编程 原理之 volatile -- 保证可见性 & 保证有序性2021-09-06 15:30:05

    1. 保证可见性 写屏障(sfence)保证在该屏障之前的,对共享变量的改动,都同步到主存当中 public void actor2(I_Result r) { num = 2; ready = true; // ready 是 volatile 赋值带写屏障 // 写屏障 } 读屏障(lfence)保证在该屏障之后,对共享变量的读取,加载的是主存中最新数据 pub

  • JUC并发编程 -- ReentrantLock可重入锁( 公平锁 & 条件变量 )2021-09-05 20:31:23

    1. 公平锁 所谓公平锁,就是线程在EnteyList排队时必须先来后到,不可以插队。 ReentrantLock 默认是不公平的公平锁一般没有必要,会降低并发度 2. 条件变量 2.1 概念: synchronized 中也有条件变量,就是我们讲原理时那个 waitSet 休息室,当条件不满足时进入 waitSet 等待Reentrant

  • JUC并发编程 -- ReentrantLock可重入锁(可重入 & 可打断 & 锁超时 & 锁超时-解决哲学家就餐)2021-09-05 20:02:02

    1. ReentrantLock可重入锁 相对于 synchronized 它具备如下特点: 可中断可以设置超时时间可以设置为公平锁支持多个条件变量(相当于有多个EntryList)与 synchronized 一样,都支持可重入 基本语法: // 获取锁 reentrantLock.lock(); try { // 临界区 } finally { // 释放锁

  • 【JUC】一些线程基础2021-09-02 22:35:27

    1.Java 内存模型 1.什么是 Java 内存模型? Java 内存模型简称为 JMM(Java Memory Model),是和多线程相关的一组规范,需要各个 JVM 来遵守实现 2.为什么需要 JMM? 有了 JMM 就可以让程序在 windows 和 Linux 上有一样的执行效果,即屏蔽了底层的差异,实现 Write Once,Run Anywhere !,并且解

  • 【JUC】1.介绍2021-08-25 23:00:14

    1. JUC简介 在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的。JUC 就是java.util.concurrent 工具包的简称。这是一个处理线程的工具包,JDK 1.5 开始出现的。 2. 进程与线程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基

  • 大厂学院JUC并发编程与源码分析2021-08-25 14:03:35

    01 完结大厂学院大厂算法和数据结构解析 02 完结大厂学院设计模式与框架源码分析 03 完结大厂学院JVM与GC调优 04 完结大厂学院JUC并发编程与源码分析 05 完结大厂学院拥抱云原生 06 完结大厂学院分布式存储极致性能Redis6 07 更新中大厂学院微服务框架核心源码深度解析 08 完结

  • 备战Java面试[JUC并发编程] -- 线程池详细讲解2021-08-25 00:00:18

    线程池 线程池:三大方法、7大参数、4种拒绝策略 池化技术 程序的运行,本质:占用系统的资源! 我们需要去优化资源的使用 ===> 池化技术 例如:线程池、JDBC的连接池、内存池、对象池 等等。。。。 资源的创建、销毁十分消耗资源 池化技术:事先准备好一些资源,如果有人要用,就来我这

  • JUC原子操作类与乐观锁CAS2021-08-11 12:32:45

    JUC原子操作类与乐观锁CAS ​ 硬件中存在并发操作的原语,从而在硬件层面提升效率。在intel的CPU中,使用cmpxchg指令。在Java发展初期,java语言是不能够利用硬件提供的这些便利来提升系统的性能的。而随着java不断的发展,Java本地方法(JNI)的出现,使得java程序越过JVM直接调用本地方法

  • JUC(4)Volatile2021-08-05 23:31:58

    Volatile是Java虚拟机提供的轻量级的同步机制,它的三大特性: 保证可见性 不保证原子性 禁止指令重排 JMM的三大特性,volatile只保证了两个,即可见性和有序性,不满足原子性 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值立即刷新回主内存中。 当读一个vol

  • JUC(5)原子类2021-08-05 23:31:14

    接下来我们来介绍18罗汉以及LongAdder底层实现原理 (1). 基本类型原子类(AtomicInteger、AtomicBoolean、AtomicLong) (2). 数组类型原子类 (AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray) (3). 引用类型原子类 (AtomicReference、AtomicStampedReference、AtomicM

  • JUC编程09:JMM、Volatile2021-08-04 09:03:20

    一、什么是JMM 1、概念 JMM:Java虚拟机是一个实现了跨平台的虚拟系统,因此它也有自己的内存模型,即Java内存模型(Java Memory Model, JMM)。 2、JMM同步 线程解锁前,必须把共享变量立刻刷回主存。 线程加锁前,必须读取主存中的最新值到工作内存中! 加锁和解锁是同一把锁。 3、八

  • JUC 并发编程2021-07-31 15:58:51

    JUC 并发编程 来源:【尚硅谷】大厂必备技术之JUC并发编程2021最新版 1 什么是 JUC 1.1 JUC 简介 在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的。 JUC 就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包, JDK 1.5 开始出现的。 [外链图片

  • JUC(3)Java内存模型JMM2021-07-28 22:31:37

    因为CPU的缓存导致CPU的速度比物理主内存的速度快很多,CPU的运行并不是直接操作内存,而是先把内存里边的数据读到缓存,而内存的读和写操作的时候就会造成不一致的问题。 Java虚拟机规范中试图定义一种Java内存模型(java Memory Model,简称JMM) 来屏蔽掉各种硬件和操作系统的内存访问差

  • JUC并发编程二:Lock锁(重点)2021-07-24 16:34:15

    JUC并发编程二:Lock锁(重点) ➢传统的Synchronized 代码示例: package Demo01; //基本的买票例子 /* 真正的多线程开发,在公司中的开发中,降低耦合性 线程就是一个单独的资源类,没有任何附属的操作! 1、包含属性、方法 */ public class SaleTicketDemo01 { public static void

  • JUC多线程之ThreadPoolExecutor类任务执行流程2021-07-23 01:04:26

    ThreadPoolExecutor类: ThreadPoolExecutor是我们最常用的一个线程池类,它实现了AbstractExecutorService接口。首先来看一下它的构造器及相关关键变量: // 这是其中的一个构造器,包含了线程池构造器的七大核心参数 public ThreadPoolExecutor(int corePoolSize, int maximu

  • JUC的Lock以及各种工具类2021-07-21 20:59:23

    Lock ReentrantLock 可重入锁 获取到锁的线程可以多次调用lock()方法对共享资源重复加锁而不会被锁阻塞,对于ReentrantLock来说获取锁是将state从0置成1,而重入是将state加1,每一次释放锁都是将state减1,锁的最终释放是将state减为0。 公平锁和非公平锁 如果一个锁是公平的,那么这

  • Java JUC并发之对于各种锁的理解以及如何解决死锁问题2021-07-19 03:00:06

    对于各种锁的理解 公平锁、非公平锁 公平锁 : 不允许插队,必须先来后到 非公平锁: 允许插队(默认都是非公平锁) 可重入锁 synchronized 这里是同一把锁 package com.liu.lock8.reentrantLock; public class Demo01 { public static void main(String[] args) { Ph

  • JUC学习-7-ForkJoin-异步回调-Future2021-07-17 12:00:26

    ForkJoin 分支合并 ForkJoin在JDK1.7出现的 并行执行任务 提高效率 大数据量 把大任务分成小任务 fork join 特点 工作窃取 public class ForkJoinDemo extends RecursiveTask<Long> { private long start = 0L; private long end = 0L; private long temp = 10000L;

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有