E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
JUC
JUC
并发编程高级篇第六章之Synchronized锁升级(无锁->偏向锁->自旋锁->重量锁)
文章目录1、锁指向总结2、锁升级过程2.1、无锁2.2、偏向锁2.2.1、什么时候升级成偏向锁?2.2.1、偏向锁的原理?2.2.3、偏向锁开启条件?2.3、撤销偏向锁2.3.1、发生的条件2.3.2、全局安全点的概念2.4、轻量锁(CAS)2.4.1、发生的时机2.4.2、加锁2.4.3、解锁2.4.4、释放CAS锁2.5、重量级锁/锁膨胀2.5.1、发生的时机2.5.2、步骤原理3、锁升级后,
爱吃糖的靓仔
·
2023-04-11 05:14
java
jvm
c++
周阳老师
JUC
并发编程
1.序章1)
JUC
是什么?java.util.concurrent在并发编程中使用的工具包对
JUC
知识的高阶内容讲解和实战增强2)为什么学习并用好多线程极其重要?
苦 糖 果
·
2023-04-11 05:14
#
多线程与并发
面试
juc
并发编程
多线程
JUC
并发编程常见面试题目
1.进程和线程,并发和并行进程:进程是计算机程序在一个数据集上的一次运行过程,也是资源分配和调度的基本单位线程:线城是进程中的一个执行单元。一个进程中至少有一个线程并行:指的是两个或多个事件在同一时刻发生,并发:指的是两个或多个事件在同一时间间隔内发生2.守护线程和用户线程的区别用户(User)线程:运行在前台,执行具体的任务,如程序的主线程守护(Daemon)线程:运行在后台,为用户线程服务。一
corlor_龙
·
2023-04-11 05:44
java面试
java
并发编程
面试
JUC
并发编程高级篇第四章之ThreadLocal(人手一份,天下安)
文章目录1、ThreadLocal的简介1.1、常见的面试题(也是本次的讲解的内容)1.2、什么是ThreadLocal1.3、ThreadLocal的所用1.4、没有出现ThreadLocal前后的变化1.5、ThreadLocal代码示例1.6、阿里巴巴对ThreadLocal的使用要求1.7、ThreadLocal的源码分析2、ThreadLocal弱引用问题2.1、什么是内存泄露?2.2、
爱吃糖的靓仔
·
2023-04-11 05:44
java
jvm
开发语言
JUC
并发编程高级篇第五章之对象内存布局和对象头[new Object 占用多少字节? ]
文章目录1、对象的构成1.1、对象头(header)1.1.1、对象标记(markWord)1.1.2、类元信息(类型指针)1.2、实例数据(instancedata)1.3、对齐填充(保证8字节的倍数)2、Objecto=newObject证明2.1.1、JOL证明2.2.1、压缩指针1、对象的构成对象的构成主要是由对象头(header),实例数据(instancedata),对齐填充(保证8字
爱吃糖的靓仔
·
2023-04-11 05:44
java
jvm
开发语言
JUC
并发编程之AQS源码解析(共享锁)
上一篇谈到独占锁,共享锁和独占锁有很多相似之处,接下来进行分析.......1.什么是共享锁和独占锁?共享锁就是允许多个线程同时获取一个锁,一个锁可以同时被多个线程拥有。排它锁,也称作独占锁,一个锁在某一时刻只能被一个线程占有,其它线程必须等待锁被释放之后才可能获取到锁。2.以CountDownLatch为进行源码解析①首先newCountDownLatch(count),会创建一个Sync类,并
hanna22
·
2023-04-11 05:43
juc
java
JUC
并发编程第十三篇,AQS的作用与体系结构
JUC
并发编程第十三篇,AQS的作用与体系结构一、AQS是什么?二、AQS在
JUC
中的地位与作用三、AQS体系结构一、AQS是什么?
安东子丶
·
2023-04-11 05:12
JUC并发编程
java
jvm
JUC并发编程
AQS
JUC
并发编程高级篇第七章之AQS(读写锁的优化实践)
文章目录1、AQS简介1.1、什么是AQS1.2、AQS能干嘛2、AQS的源码深度讲解和分析2.1、ReentrantLock的基本架构2.2、lock()3、整个ReentrantLock的加锁过程,可以分为三个阶1、AQS简介1.1、什么是AQS主要用于解决锁分配给"谁"的问题体就是一个抽象的FIFO队列来完成资源获取线程的排队工作,并通过一个int类变量表示持有锁的状态比如常用的lock.u
爱吃糖的靓仔
·
2023-04-11 05:11
java
开发语言
并发——深入理解JMM&并发三大特性1【2023】
JUC
本质同步、互斥,分工无锁、有锁JMM三个角度去分析:java层面、jvm层面、硬件层面并发、并行清楚并发的三大特性:可见性、原子性、有序性并发可见性:mesiJMM:抽象概念、线程之间怎么交互的判断条件
Comus_j
·
2023-04-10 21:42
【2023】
并发
开发语言
Semaphore浅析
文章目录前言1、简介及应用2、源码分析1.构造方法2.acquire方法3.doAcquireSharedInterruptibly方法4.release方法前言在
JUC
包下,有三个控制并发的工具类Semaphore
雅俗共赏zyyyyyy
·
2023-04-10 19:10
学习总结
java
开发语言
后端
阻塞队列
1.2
JUC
阻塞队列的存取方法常用的存取方法都是来自于
JUC
包下的Bl
llp1110
·
2023-04-10 13:36
java
jvm
数据结构
阻塞队列
1.2
JUC
阻塞队列的存取方法常用的存取方法都是来自于
JUC
包下的Blo
llp1110
·
2023-04-10 13:59
并发编程
java
jvm
开发语言
2.3、
juc
锁-信号量Semaphore
1、使用场景:1、共享资源只有两个,线程却有3个2、我们要下载很多图片,并发异步进行,每个下载都会开辟一个新线程,可是我们又担心太多线程肯定cpu吃不消,那么我们这里也可以用信号量控制一下最大开辟线程数。3、我们工作中遇到的各种池化资源,例如连接池、对象池、线程池等等。其中,你可能最熟悉数据库连接池,在同一时刻,一定是允许多个线程同时使用连接池的,当然,每个连接在被释放前,是不允许其他线程使用的。
七离_82cd
·
2023-04-10 03:17
JUC
之CountDownLatch与CyclicBarrier
1.前言在java.util.concurrent包中为我们提供了很多的线程同步工具类,例如CountDownLatch与CyclicBarrier,那么它们主要的用途是什么呢?且看后续分析。2.CountDownLatch2.1什么是CountDownLatchCountDownLatch,顾名思义,这是一个带计数器的线程同步工具。我们来看官方解释:Asynchronizationaidthat
fkjavaer
·
2023-04-10 02:56
java
java
Java原子类
JUC
并发包中的原子类都存放在java.util.concurrent.atomic类路径下,具体如下图所示:根据操作的目标数据类型,可以将
JUC
包中的原子类分为4类:基本原子类、数组原子类、原子引用类和字段更新原子类
代码的搬运工
·
2023-04-09 23:44
JUC
(二)
通过本文档你将学习到共享问题synchronized线程安全分析Monitorwait/notify线程状态转换活跃性Lock1共享带来的问题我们先从一个小故事开始讲起:话说500年前,老王有一个日记本,然后想租出去赚点钱,然后转给了小王。但是小王也不是24小时一直用这个日记本,有时候他会睡觉,有时他会出去玩。资本的力量,让老王萌生了一个天才的想法。再把这个日记本租一次,当然那时候是合法的,虽然现
木林森1615
·
2023-04-09 16:50
你希望你在70岁是什么样子?——读《人生由我》有感
JUC
O想象一下,当你到了70岁时,你的生活会是什么样子?是和大多数人一样每天看电视、打麻将、抱怨家长里短?还是,还是70岁其实有其他可能?比如,成为一个有着成功事业的模特?
是凯莉彭
·
2023-04-09 15:57
java
juc
多线程自增, LongAdder 对象,比 AtomicLong 性能更好
多线程自增在多线程环境下,如何解决变量的内存不可见问题以及线程安全问题。LongAdder如何实现自增实现原理呢?能和你相遇,除了幸运,我想不出别的词,而被爱,则是荣幸volatile解决多线程内存不可见问题。对于一写多读,是可以解决变量同步问题,但是如果多写,同样无法解决线程安全问题。如果是count++操作,使用如下类实现:AtomicIntegercount=newAtomicInteger
洪宏鸿
·
2023-04-09 12:16
java基础
java
算法
自增
LongAddr
AtomicInteger
JUC
多线程:ThreadLocal 原理总结
1、什么是ThreadLocal:ThreadLocal提供了线程内部的局部变量,当在多线程环境中使用ThreadLocal维护变量时,会为每个线程生成该变量的副本,每个线程只操作自己线程中的变量副本,不同线程间的数据相互隔离、互不影响,从而保证了线程的安全。ThreadLocal适用于无状态,副本变量独立后不影响业务逻辑的高并发场景,如果业务逻辑强依赖于变量副本,则不适合用ThreadLocal
张维鹏
·
2023-04-09 07:39
Java核心编程技术
java
面试
ThreadLocal
多线程
1.线程池相关
线程池相关1.
JUC
是什么2.进程/线程进程/线程是什么?3.为什么需要使用线程池?4.一般项目中哪里会用到线程池?5.线程池的好处?6.线程池创建方式7.线程池如何实现线程复用的?
孙瑞_COME_ON
·
2023-04-09 03:43
JUC
java
开发语言
短链生成哪家强 新浪微博很张扬 t.cn
key=czUl8g
JuC
D/tcn_url?url='.urlencode($url);$sh
喜欢萌妹子的少年
·
2023-04-08 23:13
2020-05-11 Java入坑指南2.0(B站Up主CodeSheep搬运)
语言语言基础:基础语法面向对象接口容器异常泛型反射注解I/O图形化JVM:类加载机制字节码执行机制JVM内存模型GC垃圾回收JVM性能监控与故障定位JVM调优并发/多线程:并发编程基础线程池锁并发容器原子类
JUC
柒李香
·
2023-04-08 21:03
突击并发编程
JUC
系列-ReentrantReadWriteLock
突击并发编程
JUC
系列演示代码地址:https://github.com/mtcarpenter/JavaTutorial本章节将学习ReentrantReadWriteLock(读写锁),ReadWriteLock
山间木匠1
·
2023-04-08 14:42
【
JUC
并发】fork/join
Fork/Join原理(需要继承(有返回值)RecursiveTask或者(没返回值)RecursiveAction,重写compute()方法)将大任务拆分成小任务,先实现compute()方法。首先判断任务是否足够小,如果足够小就直接执行任务。如果不够小,就必须分割成两个子任务,每个子任务调用fork()方法时,又会进入compute()方法,递归下去。工作窃取算法异步调用fork()方法/*
赵陌陌丶
·
2023-04-08 13:20
JUC并发
java
并发编程
JUC
并发编程---学习笔记
什么是
JUC
java.util工具包、包、分类业务:普通的线程代码ThreadRunnable没有返回值、效率相比入Callable相对较低!
开膛手joker
·
2023-04-08 13:11
java
JUC
高并发编程(16) -- Fork/Join 框架
JUC
高并发编程十二、Fork/Join框架12.1)Fork/Join框架简介Fork/Join可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并进行输出。
姜皓
·
2023-04-08 13:08
高并发
java
JUC
多线程:Atomic原子类与CAS原理
一、Atomic原子类的原理:Atomic原子操作类是基于无锁CAS+volatile实现的,并且类中的所有方法都使用final修饰,进一步保证线程安全。而CAS算法的具体实现方式在于Unsafe类中,Unsafe类的所有方法都是native修饰的,也就是说所有方法都是直接调用操作系统底层资源进行执行相应任务。Atomic使用乐观策略,每次操作时都假设没有冲突发生,并采用volatile配合CAS
张维鹏
·
2023-04-08 10:19
Java核心编程技术
java
面试
JUC
Atomic原子类
CAS
JUC
-并发编程17-线程池深入分析-ThreadPoolExecutor-1
1、简介ThreadPoolExecutor的构造方法是创建线程池的入口,虽然比较简单,但是信息量很大,由此也能引发一系列的问题,同样地,这也是面试中经常被问到的问题,下面只是列举了一部分关于ThreadPoolExecutor构造方法的问题。2、属性说明2.1corePoolSize除非设置了allowCoreThreadTimeOut,否则核心池大小是保持活动状态(并且不允许超时等)的最小工作
续亮~
·
2023-04-08 09:23
并发编程
数据结构与算法
java基础
java
并发编程
JUC
-并发编程16-线程池深入分析-体系结构
1、简介java的线程池是比较常用的在并发编程里面。对线程池的源码做深入研究不仅能提高对java整个并发编程的理解,也能提高自己在面试中的表现,增加被录取的可能性。2、体系结构上图列举了线程池中非常重要的接口和类:Executor,线程池顶级接口ExecutorService,线程池次级接口,对Executor的补充,做了一下扩展ScheduleExecutorService,对ExecutorS
续亮~
·
2023-04-08 09:22
并发编程
数据结构与算法
并发编程
java
锁Hi系列----跟Java锁Say声Hi(公平锁和非公平锁、互斥锁和读写锁、可重入锁和不可重入锁、自旋锁、独占锁和共享锁、悲观锁和乐观锁、
JUC
下5种锁代码应用)
目录1.由ReentrantLock和synchronized实现的一系列锁1.1从其它等待中的线程是否按顺序获取锁的角度划分–公平锁与非公平锁1.1.1锁的公平性1.1.2锁的非公平性1.1.3ReentrantLock源码来讲解公平锁和非公平锁1.1.4公平锁与非公平锁的总结1.2从能否有多个线程持有同一把锁的角度划分–独占锁(互斥锁)与共享锁(读写锁)1.2.1独占锁的实现-互斥锁1.2.2
Scoful
·
2023-04-08 01:10
Java
#
高级
锁
2023Java高频必背并发编程面试题02
juc
包提供了⼀个AtomicStampedReference,即在原始的版本下加⼊版本号戳,解决ABA问题。2、简述常⻅的Atomic类。在很多时候,我们需要的仅
技术人小柒
·
2023-04-07 20:15
大数据开发
面试
Java
java
jvm
面试
JUC
- 多线程锁
JUC
-多线程锁1、关于Lock2、Lock和Synchronized2.1Lock和Synchronized区别3、公平锁和非公平锁4、Lock接口的实现类ReentrantLock5、ReadWriteLock
STRANG-P
·
2023-04-07 19:29
线程系列
JUC
ReadWriteLock
Lock
公平锁和非公平锁
Android好文章
overviewAndroid系统架构——导读-Sharry'sblogjava全栈知识体系https://pdai.tech/md/java/thread/java-thread-x-lock-LockSupport.html
JUC
十七17
·
2023-04-07 18:33
重量级锁的8连问,你能接住几个?
重量级锁的ObjectMonitor和
JUC
中的AQS有什么异同为什么ObjectMonitor需要cxq和entryList两个等待队列cxq队列中等待线程,什么时候会进到EntryList等待队列中多个线程
空挡
·
2023-04-07 16:13
JUC
并发编程基础篇第四章之公平锁/重入锁/死锁[常见锁的基本认识]
文章目录1、公平锁/非公平锁1.1、概念1.2、非公平锁代码案例1.3、公平锁代码案例1.4、面试题:为什么会有这样的公平锁和非公所这样的设计2、重入锁2.1、简介2.2、没有重入锁,会发生什么问题2.3、可重入锁的种类2.3.1、隐式锁2.3.2、显式锁2.4、面试题:可重入锁的实现机制3、死锁3.1、概念3.2、死锁案例3.3、如何证明自己程序是死锁状态,而不是whiletrue导致的1、公平
爱吃糖的靓仔
·
2023-04-07 15:02
java
JUC
并发编程基础篇第五章之线程中断状态[你理解的线程中断,只会Thread.interrupted()吗]
文章目录1、什么是线程的中断机制2、isterruptinterruptedisInterrupted区别3、面试题3.1、如何停止中断运行中的线程3.2、当前线程的中断标识符为true,是不是线程就立马停止了3.3、如果线程处于被阻塞的状态(列入sleep,wait,join等状态),在别的线程调用当前线程的interrupt()方法,会发生什么?3.4、interrupted的特点4、iste
爱吃糖的靓仔
·
2023-04-07 15:02
java
JUC
并发编程基础篇第六章之LockSupport[notify,signal之外的另一种唤醒方式]
文章目录1、LockSupport有什么用2、使用wait和notify唤醒一个线程2.1、正常情况2.2、异常情况2,这里去掉了synchronized(o){}代码块2.3、异常情况3先notify再wait3、使用await和signal唤醒一个线程3.1、正常情况3.2、异常情况:如果去除锁块3.3、异常情况:先执行signal后await4、LockSupport的park等待和unpa
爱吃糖的靓仔
·
2023-04-07 15:02
java
JUC
并发编程系列详解篇十一(synchronized底层的锁)
synchronized锁的优化操作系统分为“用户空间”和“内核空间”,JVM是运行在“用户态”的,jdk1.6之前,在使用synchronized锁时需要调用底层的操作系统实现,其底层monitor会阻塞和唤醒线程,线程的阻塞和唤醒需要CPU从“用户态”转为“内核态”,频繁的阻塞和唤醒对CPU来说是一件负担很重的工作,这些操作给系统的并发性能带来了很大的压力。同这个时候CPU就需要从“用户态”切
淡墨@~无痕
·
2023-04-07 15:29
java基础
Java高级特性
并发编程
jvm
java
面试
JUC
并发编程系列详解篇九(synchronized基础)
java的对象头在JVM中,对象在内存中的布局分为三块区域:对象头、实例数据和对齐填充。如下图所示:对象头对象头又包括两部分信息,第一部分用于存储对象自身的运行时数据(MarkWord),如HashCode、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。对象头的另外一部分是类型指针(Klasspointer),即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪
淡墨@~无痕
·
2023-04-07 15:58
java基础
Java高级特性
并发编程
jvm
java
JUC
并发编程基础篇第三章之Synchronized八锁案例[理解锁的对象]
文章目录1、总结2、Java8锁案例1打印的方法都有synchronized修饰,先调用email,后调用Sms;输出顺序?案例2如果在发送email的方法,加入了暂定3s中的操作,打印顺序?案例3增加一个普通的方法hello,此时b线程调用hello,先打印email还是hello?案例4有两部手机,先打印邮件还是短信案例5有两个静态同步方法,只有一个手机,打印顺序?案例6有两个静态同步方法,有
爱吃糖的靓仔
·
2023-04-07 15:54
java
开发语言
并发容器(Map、List、Set)原理
文章目录并发容器(Map、List、Set)原理
JUC
下的并发容器CopyOnWriteArrayList应用场景常用API方法原理缺陷迭代器的fail-fast与fail-safe机制ConcurrentHashMap
胡尚
·
2023-04-07 08:44
报班总结笔记
java
算法
数据结构
Spring -
JUC
深入理解Volatile关键字及其实现原理
volatile的用法volatile通常被比喻成"轻量级的synchronized",也是Java并发编程中比较重要的一个关键字。和synchronized不同,volatile是一个变量修饰符,只能用来修饰变量。无法修饰方法及代码块等。volatile的用法比较简单,只需要在声明一个可能被多线程同时访问的变量时,使用volatile修饰就可以了。如以下代码,是一个比较典型的使用双重锁校验的形式
当走的路甚远
·
2023-04-06 17:13
Java
Volatile
Java基础-多线程&
juc
1.实现多线程1.1简单了解多线程【理解】是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。1.2并发和并行【理解】并行:在同一时刻,有多个指令在多个CPU上同时执行。并发:在同一时刻,有多个指令在单个CPU上交替执行。1.3进程和线程【理解】进程:是正在运行的程序独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和
爪蛙毁一生
·
2023-04-06 16:51
java
java
开发语言
后端
多线程
juc
Netty组件-EventLoop
Netty组件-EventLoopEventLoop本质上是一个子线程执行器,里面有run方法处理channel上源源不断地io任务,继承关系:一条线继承自
juc
.ScheduledEvecutorService
steins4
·
2023-04-06 07:01
netty入门
netty
java
Java并发指南14:
JUC
中常用的Unsafe和Locksupport
本文转自网络,侵删本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h2pl/Java-Tutorial喜欢的话麻烦点下Star哈文章同步发于我的个人博客:www.how2playlife.com本文是微信公众号【Java技术江湖】的《Java并发指南》其中一篇,本文大部分内容来源于网络,为了把本文主题讲得清晰透彻,
da3acf50377b
·
2023-04-06 05:02
Java并发编程
JUC
-小结
Java并发编程
JUC
(java.util.concurrent)提供了一些可重用的线程安全组件,这些组件可以帮助我们更容易地实现高效且正确的并发程序。
XinHaiYe
·
2023-04-06 04:05
JavaSE
java
java
jvm
开发语言
ReentrantLock(AQS),Volatile,Synchronized的实现原理
本文参考:
JUC
学习(八):AQS的CLH队列并发编程——详解AQSCLH锁JMM和底层实现原理AQSReentrantLock类关于lock接口的操作都交给了内部类Sync类来实现,Sync类又有两个子类
leap_
·
2023-04-06 03:43
并发基础之线程池(Thread Pool)
目录前言何为线程池线程池优势创建线程池方式直接实例化ThreadPoolExecutor类
JUC
Executors创建线程池线程池挖掘Executors简单介绍ThreadPoolExecutor核心类
小沈同学呀
·
2023-04-06 01:51
并发编程
java
开发语言
线程池
Thread
juc
面试题总结
Q1:什么是CAS?CAS表示CompareAndSwap,⽐较并交换,CAS需要三个操作数,分别是内存位置V、旧的预期值A和准备设置的新值B。CAS指令执⾏时,当且仅当V符合A时,处理器才会⽤B更新V的值,否则它就不执⾏更新。但不管是否更新都会返回V的旧值,这些处理过程是原⼦操作,执⾏期间不会被其他线程打断。在JDK5后,Java类库中才开始使⽤CAS操作,该操作由Unsafe类⾥的等⼏个⽅法包
zf888999666
·
2023-04-05 23:18
java
jvm
开发语言
JUC
线程&线程池和锁面试题
线程基础知识并发编程的优缺点为什么要使用并发编程(并发编程的优点)充分利用多核CPU的计算能力:通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升方便进行业务拆分,提升系统并发能力和性能:在特殊的业务场景下,先天的就适合于并发编程。现在的系统动不动就要求百万级甚至千万级的并发量,而多线程并发编程正是开发高并发系统的基础,利用好多线程机制可以大大提高系统整体的并发能力以及性能。面对
Java烟雨
·
2023-04-05 23:13
java
面试
后端
java
面试
开发语言
职场和发展
上一页
26
27
28
29
30
31
32
33
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他