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
java并发编程JUC
JUC
多线程:ThreadLocal 原理总结
1、什么是ThreadLocal:ThreadLocal提供了线程内部的局部变量,当在多线程环境中使用ThreadLocal维护变量时,会为每个线程生成该变量的副本,每个线程只操作自己线程中的变量副本,不同线程间的数据相互隔离、互不影响,从而保证了线程的安全。ThreadLocal适用于无状态,副本变量独立后不影响业务逻辑的高并发场景,如果业务逻辑强依赖于变量副本,则不适合用ThreadLocal
张维鹏
·
2023-04-09 07:39
Java核心编程技术
java
面试
ThreadLocal
多线程
1000题!!阿里P8架构师手写“Java面试宝典”带你横扫全网
今天小编分享的这份出阿里大牛之手的“
Java并发编程
图册”包含⼤量图⽂以及源码分析帮助⼤家理解相关知识,借助这些图⽂,按照这个顺序学习,⾄少可以让你简单⼊⻔并发。
小小怪下士 XIA
·
2023-04-09 03:37
java
面试
jvm
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
ReentrantLock源码解读
前言写这篇文章之前,还是先安利一本书:《
java并发编程
的艺术》。这本书对锁的实现的很多细节都解释的还是很清楚的,加上自己配合源码进行理解,读懂ReentrantLock这个类的实现应该不是那么困难。
marsjhe
·
2023-04-08 18:06
Java并发编程
-wait和notify原理剖析
目录1.小故事-为什么需要wait2.wait¬ify工作原理3.API介绍4.wait和notify的正确姿势4.1.sleep(longn)和wait(longn)的区别4.2.step14.3.step24.4.step34.5.step44.6.step54.7.正确套路模板1.小故事-为什么需要wait有一对小孩都要使用算盘CPU进行计算,为了计算过程中的计算安全,老王设计了一个s
Java硬件工程师
·
2023-04-08 16:58
并发编程
Java
多线程
并发编程
多线程
java
Java并发编程
之wait、notify和join原理
文章目录1、wait、notify介绍2、API介绍3、sleep(longn)和wait(longn)的区别4、wait/notify的正确使用#2、join源码3、park&unpack3.1、基本使用3.2、park、unpark原理4、线程状态转换1、wait、notify介绍必须要获取到锁对象,才能调用这些方法当线程0获得到了锁,成为Monitor的Owner,但是此时它发现自己想要执行
冬天vs不冷
·
2023-04-08 16:27
juc
java
开发语言
后端
Java并发编程
系列18:多线程之生产者和消费者模式_信号灯法(wait/notify通知机制)
1、生产者消费者模式生产者消费者问题(Producer-consumerproblem),也称为有限缓冲问题(Bounded-bufferproblem),是一个多线程同步问题的经典案例。该问题描述了两个共享大小缓冲区的线程---既所谓的“生产者”和“消费者”----在实际运行时会发生的问题。生产者的主要作用时生成一定量的数据放到缓冲区中,然后重复此过程。以此同时,消费者也在缓冲区消费这些数据。该
fen_fen
·
2023-04-08 16:55
java相关
#
JAVA多线程编程
java
开发语言
后端
突击并发编程
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
并发编程
Java并发编程
-23-Fork/Join 框架概述
一、Java并发的总结1、通常,使用Java开发简单的并发应用程序时,会创建一些Runnable对象,然后创建对应的Thread对象来控制程序这些线程的创建,执行,以及线程的状态2、Java5引入了Executor和ExecutorService接口以及实现这两个接口的的类,比如ThreadPoolExecutor之后,使得Java在并发上得到进一步的提升,执行器框架将任务的创建和执行进行了分离,
韦轩
·
2023-04-08 13:13
Java
并发编程
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
java timer并发_
Java并发编程
笔记之Timer源码分析
timer在JDK里面,是很早的一个API了。具有延时的,并具有周期性的任务,在newScheduledThreadPool出来之前我们一般会用Timer和TimerTask来做,但是Timer存在一些缺陷,为什么这么说呢?Timer只创建唯一的线程来执行所有Timer任务。如果一个timer任务的执行很耗时,会导致其他TimerTask的时效准确性出问题。例如一个TimerTask每10秒执行一
weixin_39890431
·
2023-04-08 09:57
java
timer并发
Java并发编程
—ScheduledThreadPoolExecutor原理分析
原文作者:小付原文地址:ScheduledThreadPoolExecutor原理分析目录一、简单使用二、类UML图三、处理流程四、任务提交方式五、SchduledFutureTask之run方法实现一、简单使用这里先学会简单使用再深入探讨。 ScheduledThreadPoolExecutor scheduled=newScheduledThreadPoolExecutor(2);
测试狗一枚
·
2023-04-08 09:25
后端—开发语言—Java
Java并发编程
:ScheduledThreadPoolExecutor源码解析
1ScheduledThreadPoolExecutor类图ScheduledThreadPoolExecutor类图如下ScheduledThreadPoolExecutor继承了ThreadPoolExecutor并实现了ScheduledExecutorService接口。线程池队列是DelayedWorkQueue,是一个延迟队列。ScheduledFutureTask是具有返回值的任务,
BoscoKuo
·
2023-04-08 09:53
Java基础
并发编程
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
Java并发编程
之ScheduledThreadPoolExecutor源码剖析
之前我们剖析过Java中线程池ThreadPoolExecutor的源码,链接为https://blog.csdn.net/HappyHeng/article/details/86827324,这一节从源码层次讲一下ScheduledThreadPoolExecutor这个定时线程池是如何执行任务的。一、ScheduledFutureTask:在ThreadPoolExecutor中提交任务执行,
HappyHeng
·
2023-04-08 09:16
java源码解析
ThreadPool
Executor
Scheduled
Pool
锁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
算法
数据结构
Java并发编程
:浅谈wait/notify/notifyall机制
1、使用条件:当前重量级锁的持有线程Thread2发现条件不满足时会调用wait方法,Thread2释放锁并进入WaitSet变为WAITING状态(即线程调用wait/notify/notifyall方法的前提条件是该线程必须持有这个锁)。2、线程在BLOCKED和WAITING状态下都是处于阻塞状态,不会占用CPU时间片。3、当Owner线程释放锁的时候,会调用notify或者notifyal
sicaujh
·
2023-04-07 06:59
java
并发编程
java
并发编程
多线程
互联网寒冬 阿里架构师的Java知识地图,Java集合面试常用的问题
1、并发编程
Java并发编程
是整个Java开发体系中最难以理解,但也是最重要的知识点之一,一旦掌握你一定在市场上供不应求。
不几乎都有
·
2023-04-06 20:34
java
面试
经验分享
架构
spring
java 并发编程(三)之synchronized
上两个章节:
java并发编程
(一)之synchronized、
java并发编程
(二)之synchronized实例中讲解了synchronized关键字对同步的控制以及演示了在修饰方法的例子。
sam-fat-chang
·
2023-04-06 18:12
java
concurrency
java并发
synchronized
非依赖属性
java并发编程
之synchronized
synchronized使用了对象锁保证了临界区代码的原子性,临界区内的代码是不可分割的,不会被线程切换所打断。如:publicclassTest{privatestaticintx=0;privatestaticfinalObjectsync=newObject();publicstaticvoidmain(String[]args)throwsInterruptedException{Thre
kingyal
·
2023-04-06 18:03
java
多线程
java
jvm
开发语言
java并发编程
:synchronized同步方法
非线程安全问题:多个线程对同一个对象中的实例变量进行并发访问时发生,产生脏读,读取的数据可能是被更改过的。当多个线程同时访问同一个业务对象中没有同步的方法,可能出现非线程安全问题。解决办法:使用synchronized声明,保证方法只能由获得锁的线程执行。在用synchronized声明的方法中,线程进入方法时就获得锁,方法执行完就释放锁。(1)对于方法内部的私有变量,不存在非线程安全问题。(2)
暮色_年华
·
2023-04-06 18:58
java
java
jvm
开发语言
java并发编程
synchronized、volatile关键字及ReentrantLock类总结
1、java为解决并发问题引入的关键字synchronized,volatile,怎么用?synchronized修饰的方法或者代码块(保证可见性和排他性);synchronized修饰静态方法时(或方法时)同步的是这个对象类级别的;synchronized修饰方法时,同步的是对象实例级别的volatile修饰变量(仅保证可见性);每个线程运行时都有一个线程栈,线程栈保存了线程运行时候变量值信息。
abasen
·
2023-04-06 18:52
java
Spring -
JUC
深入理解Volatile关键字及其实现原理
volatile的用法volatile通常被比喻成"轻量级的synchronized",也是
Java并发编程
中比较重要的一个关键字。
当走的路甚远
·
2023-04-06 17:13
Java
Volatile
Java并发编程
(十一):Java8 新增的并发
原子操作CASLongAdderJDK1.8时,java.util.concurrent.atomic包中提供了一个新的原子类:LongAdder。根据Oracle官方文档的介绍,LongAdder在高并发的场景下会比它的前辈————AtomicLong具有更好的性能,代价是消耗更多的内存空间。AtomicLong是利用了底层的CAS操作来提供并发性的,调用了Unsafe类的getAndAddLo
逆风fei扬
·
2023-04-06 16:23
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
Java并发编程
实战_《
Java并发编程
实战》PDF版本下载
一、目录介绍第1章简介1.1并发简史1.2线程的优势1.2.1发挥多处理器的强大能力1.2.2建模的简单性1.2.3异步事件的简化处理1.2.4响应更灵敏的用户界面1.3线程带来的风险1.3.1安全性问题1.3.2活跃性问题1.3.3性能问题1.4线程无处不在第一部分基础知识第2章线程安全性2.1什么是线程安全性2.2原子性2.2.1竞态条件2.2.2示例:延迟初始化中的竞态条件2.2.3复合操作
汤義喆
·
2023-04-06 00:35
Java并发编程实战
【2022最新Java面试宝典】——
Java并发编程
面试题(123道含答案)
目录一、基础知识1.为什么要使用并发编程2.多线程应用场景3.并发编程有什么缺点4.并发编程三个必要因素是什么?5.Java程序中怎么保证多线程的运行安全?6.并行和并发有什么区别?7.什么是多线程8.多线程的好处9.多线程的劣势:10.线程和进程区别11.什么是上下文切换?12.守护线程和用户线程有什么区别呢?13.如何在Windows和Linux上查找哪个线程cpu利用率最高?14.什么是线程
超级码里喵
·
2023-04-06 00:19
Java面试宝典
JavaSE
java
面试
经验分享
并发编程
Java并发编程
基础(一篇入门)
1并发编程简介1.1什么是并发编程所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。并发编程,从程序设计的角度来说,是希望通过某些机制让计算机可以在一个时间段内,执行多个任务。从计算机CPU硬件层面来说,是一个或多个物理CPU在多个程序之间多路复用,提高对计算机资源的利用率。从调度算法角度来说,当任务数量多于CPU的核数时,并发编程能够通
行者无疆_ty
·
2023-04-06 00:02
Java开发
java
多线程
并发
上一页
41
42
43
44
45
46
47
48
下一页
按字母分类:
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
其他