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
转载】
Java并发编程
系列04 | Java内存模型详解
文章见:【原创】
Java并发编程
系列03|重排序-可见性和有序性问题根源那么,作为从最开始就支持并发的语言,Java是如何解决这些核心问题的呢?
大锤强无敌
·
2023-08-16 03:38
JAVA多线程—Executor
这里借用《
Java并发编程
的艺术》提到的来说一下使用线程池的好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。
Zak1
·
2023-08-16 01:18
java并发编程
(一)缓存一致性协议
多线程环境下存在的问题缓存一致性问题,指令重拍问题,可见性,有序性,缓存一致性问题在多处理器系统中,每个处理器都有自己的高速缓存,而它们又共享同一主内存(MainMemory)。基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是也引入了新的问题:缓存一致性(CacheCoherence)。当多个处理器的运算任务都涉及同一块主内存区域时,将可能导致各自的缓存数据不一致的情况,如果真的发生
胡志强
·
2023-08-16 01:03
Java并发编程
:CAS和AQS
一、什么是CASCAS(CompareAndSwap),即比较并交换。是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数————内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。无论哪种情况,它都会在CAS指令之前返回该位置的值。CAS有效地说明了“我认为位置V应该包含值A;如果包
程序员116号
·
2023-08-15 11:43
Java并发之ReentrantLock
在是
JUC
下一个重要的并发类,例如:ReentrantLock、Semaphore、CountDownLatch、LimitLatch等并发都是由AQS衍生出来的。
qq_27502511
·
2023-08-15 05:21
java
开发语言
JUC
并发编程之深入理解ThreadLocal
目录1.ThreadLocal概述2.ThreadLocal的使用方法2.1创建ThreadLocal变量2.2获取和设置ThreadLocal变量的值2.3移除ThreadLocal变量3.ThreadLocal的工作原理4线程池中的使用1.ThreadLocal概述ThreadLocal是Java标准库提供的一个工具类,位于java.lang包下。它允许你创建一个线程局部变量,每个线程都可以独
山河亦问安
·
2023-08-15 04:28
java
开发语言
JUC
线程池:ThreadPoolExecutor
原文:https://mp.weixin.qq.com/s/58OTplKPlFHtgfyRzcqbzw前提很早之前就打算看一次
JUC
线程池ThreadPoolExecutor的源码实现,由于近段时间比较忙
longLiveData
·
2023-08-15 04:17
Java并发编程
之验证volatile指令重排-理论篇
Java并发编程
之验证volatile指令重排-理论篇Java并发包下的类中大量使用了volatile关键字。
凯哥Java
·
2023-08-15 04:06
Java并发编程
的艺术_Conc
Java并发编程
的艺术1并发编程的挑战1.1上下文切换即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。
silverbo1
·
2023-08-14 23:54
java并发编程的艺术
java
并发编程
流控制
.…..ELSE..ENDIF.用户名/密码登录的例子REPORTZABAP1903_07YU
JUC
06.PARAMETERS:user(15)typec,pass(15)typec.DATA:info_a
扇动蝴蝶的翅膀
·
2023-08-14 21:30
JUC
常用类
文章目录
JUC
中常用的类1.原子类2.信号量Semaphore3.ReentrantLock
JUC
中常用的类1.原子类当我们在多线程环境下对变量进行更新时,会得到预期以外的值,典型的就是i++操作,通常会使用
爱敲代码的三毛
·
2023-08-14 18:08
多线程
java
多线程
多线程学习笔记
进程与线程的概念1.2线程状态二、多线程2.1概念区分2.2多线程编程应用场景三、线程编程3.1线程的创建方式3.2线程优先级3.3关键字和方法讲解3.3线程停止方式3.4多线程编程步骤3.5生产者消费者模式
JUC
长着角角的马
·
2023-08-14 03:41
java
【并发编程
JUC
】Future和CompletableFuture机制
场景题面试的时候当面试官提出一个场景题,比如有一个翻译接口,同时调用百度、网易、谷歌的三个翻译接口,使用返回的第一个的翻译。这个时候一般的想法可能是,先串行执行。然后异步获取。但是其实都知道这样性能非常慢。Future如果直接使用Future的方式,我们知道Future的get接口是阻塞的,也就是在执行调用三方接口的返回结果的时候,需要阻塞等待结果。其实整体的耗时就是取决于最短的三方接口响应,如果
qxlxi
·
2023-08-14 03:27
#
并发编程
juc
并发编程--------
JUC
集合
并发集合一、ConcurrentHashMap1.1存储结构ConcurrentHashMap是线程安全的HashMapConcurrentHashMap在JDK1.8中是以CAS+synchronized实现的线程安全CAS:在没有hash冲突时(Node要放在数组上时)synchronized:在出现hash冲突时(Node存放的位置已经有数据了)存储的结构:数组+链表+红黑树1.2存储操作1
奔跑的码农小哥
·
2023-08-13 22:10
多线程与高并发
java
多线程与高并发--------阻塞队列
1.2
JUC
阻塞队列的存取方法常用的存取方法都是来自于
JUC
包下的
奔跑的码农小哥
·
2023-08-13 22:40
多线程与高并发
java
JUC
线程池的实战问题 - 线程池参数应该如何配置?
在《
Java并发编程
实战》一书中,作者BrianGoetz等人指出,线程池的规模应该根据任务类型和计算密集度来确定,对于CPU密集型任务,应该将核心线程数设置为处理器核心数加1或者2;对于I/
@Autowire
·
2023-08-13 14:08
JUC面试题汇总
java
JUC
线程池的实战问题引出的一系列原理问题
1我们为什么需要使用线程池线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待、监督、管理、分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。线程池是一种通过“池化”思想,帮助我们管理线程而获取并发性的工具,在Java中的体现
@Autowire
·
2023-08-13 14:07
JUC面试题汇总
python
java
开发语言
Java多线程(4)---死锁和Synchronized加锁流程
死锁的几个经典场景2.3死锁产生的条件2.4如何解决死锁个人主页:tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主本文由tq02原创,首发于CSDN本章讲解内容:多线程的策略锁、CAS和
JUC
tq02
·
2023-08-13 12:05
JavaEE
java
开发语言
死锁
java-ee
【
JUC
】复习指南
JUC
复习指南:
JUC
有哪些知识点?
一条柴_Alex
·
2023-08-13 07:14
#
多线程
java
分布式定时任务系列5:XXL-job中blockingQueue的应用
传送门分布式定时任务系列1:XXL-job安装分布式定时任务系列2:XXL-job使用分布式定时任务系列3:任务执行引擎设计分布式定时任务系列4:任务执行引擎设计续
Java并发编程
实战1:java中的阻塞队列引子这篇文章的主要目不是讨论
kobe_t
·
2023-08-13 06:39
#
分布式调度
java
Java并发编程
(四)线程同步 中 [AQS/Lock]
概述Java中可以通过加锁,来保证多个线程访问某一个公共资源时,资源的访问安全性。Java提出了两种方式来加锁第一种是我们上文提到的通过关键字synchronized加锁,synchronized底层托管给JVM执行的,并且在java1.6以后做了很多优化(偏向锁、自旋、轻量级锁),使用很方便且性能也很好,所以在非必要的情况下,建议使用synchronized做同步操作;第二种是本文将要介绍的通过
奉先节度使
·
2023-08-12 23:33
#
Java
java
Java并发编程
(一)多线程基础概念
概述多线程技术:基于软件或者硬件实现多个线程并发执行的技术线程可以理解为轻量级进程,切换开销远远小于进程在多核CPU的计算机下,使用多线程可以更好的利用计算机资源从而提高计算机利用率和效率来应对现如今的高并发网络环境并发编程核心三要素原子性原子,即一个不可再被分割的颗粒。在Java中原子性指的是一个或多个操作要么全部执行成功要么全部执行失败有序性程序执行的顺序按照代码的先后顺序执行。(处理器可能会
奉先节度使
·
2023-08-12 23:03
#
Java
java
Java并发编程
(二)并发理论[JMM/重排序/内存屏障/Happens-Before 规则]
JMM(Java内存模型)概述JMM即Java内存模型(JavaMemoryModel),是一种抽象的概念,并不真实存在,JMM描述的是一组规则或规范,通过这组规范定义了程序中各个变量的访问方式Java内存模型中规定所有变量都存储在主内存,主内存是共享内存区域,所有线程都可以访问,但线程对变量的操作必须在工作内存中进行,所以首先要将变量从主内存拷贝的自己的工作内存空间,然后对变量进行操作,操作完成
奉先节度使
·
2023-08-12 23:03
#
Java
java
Java并发编程
(三)线程同步 上[synchronized/volatile]
概念当使用多个线程来访问同一个数据时,将会导致数据不准确,相互之间产生冲突,非常容易出现线程安全问题,比如多个线程都在操作同一数据,都打算修改商品库存,这样就会导致数据不一致的问题。所以我们通过线程同步机制来保证线程安全,加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,从而保证了该变量的唯一性和准确性。线程同步本质就是“排队“,多个线程之间要排队,然后一个一个对共享资源进行操作,而不是
奉先节度使
·
2023-08-12 23:30
#
Java
java
Java并发编程
:Callable、Future和FutureTask
在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。而自从Java1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。今天我们就来讨论
小小哭包
·
2023-08-12 23:40
开发技巧经验分享
java
开发语言
JUC
并发编程之原子类
目录1.什么是原子操作1.1原子类的作用1.2原子类的常见操作原子类的使用注意事项并发编程是现代计算机应用中不可或缺的一部分,而在并发编程中,处理共享资源的并发访问是一个重要的问题。为了避免多线程访问共享资源时出现竞态条件(RaceCondition)等问题,Java提供了一组原子类(AtomicClasses)来支持线程安全的操作。1.什么是原子操作在并发编程中,原子操作是不可被中断的一个或一系
山河亦问安
·
2023-08-12 20:18
并发编程和高并发实战
java
数据库
开发语言
JUC
并发编程之CAS
目录1.什么是CAS1.1CAS的定义1.2CAS的应用场景2.CAS的原理2.1比较和交换操作2.2CAS的实现原理2.3CAS的ABA问题及解决方案3.Java中的CAS3.1java.util.concurrent.atomic包3.2AtomicInteger与AtomicLong3.3ABA问题的解决:AtomicStampedReference和AtomicMarkableRefere
山河亦问安
·
2023-08-12 20:17
并发编程和高并发实战
java
开发语言
JUC
工具类:CompletableFuture介绍
前言一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。JDK5新增了Future接口,用于描述一个异步计算的结果。虽然Future以及相关使用方法提供了异步执行任务的能力,但是对于结果的获取却是很不方便,我们必须使用Future.get()的方式阻塞调用线程,或者使用轮询方式判断Future.isDone任务是否结束,再获取结果。与此同时,Future无法解决多个异步任务需要相互依赖的
静看º一季花开花落
·
2023-08-12 14:54
多线程与线程并发
java
Java多线程(3)---锁策略、CAS和
JUC
公平锁和非公平锁1.6可重入锁和不可重入锁二.CAS2.1为什么需要CAS2.2CAS是什么⭐CAS的介绍⭐CAS工作原理2.3CAS存在的问题2.4CAS的应用⭐实现原子类⭐实现自旋锁2.5CAS的缺点三.
JUC
3.1ReentrantLo
tq02
·
2023-08-12 12:06
JavaEE
开发语言
多线程
java-ee
Synchronized与Lock区别
核心)(1)synchronized和Lock都是可重入锁,前者是jvm中使用monitorenter(1个)和monitorexit(2个)来实现同步且其中阻塞和唤醒是wait和notify,后者是
juc
进击的猫
·
2023-08-11 21:05
总结类
JAVA锁
锁
synchronized
lock
集合框架核心知识点——线程安全
JUC
文章目录(一)Collections.synchronized实现原理1、Collections.synchronizedList实现原理2、Collections.synchronizedMap实现原理3、Collections.synchronizedSet实现原理(二)CopyOnWrite实现原理1、CopyOnWriteArrayList实现原理(读写分离、写时复制机制)、使用场景实现原
进击的猫
·
2023-08-11 20:35
集合框架
java
juc
线程安全
高并发
生产者消费者模型简单实现(java)
主要使用了
juc
中的Lock和Condition接口,代码如下:publicclassStorage{privatestaticfinalintSIZE=100;privateLinkedListlinkedList
静了静心123
·
2023-08-11 20:08
26.Netty源码之ThreadLocal
ThreadLocal可以理解为线程本地变量,它是
Java并发编程
中非常重要的一个类。
然而,然而
·
2023-08-11 15:22
.net
python
开发语言
美团动态线程池实践思路,开源了
写在前面稍微有些Java编程经验的小伙伴都知道,Java的精髓在
juc
包,这是大名鼎鼎的DougLea老爷子的杰作,评价一个程序员Java水平怎么样,一定程度上看他对
juc
包下的一些技术掌握的怎么样,这也是面试中的基本上必问的一些技术点之一
DataFox
·
2023-08-11 11:58
AbstractQueuedSynchronizer 队列同步器源码分析
(摘自《
Java并发编程
的艺术》)我们知道获取同步状态有独占和共享两种模式,本文先针对独占模式进行分析。变量定义privatetransientvolatileNodehead;head
断风雨_2669
·
2023-08-11 06:23
线程池的getPoolSize()方法只增不减?
在《
Java并发编程
的艺术》第九章9.2.5节中,对线程池的参数监控方法有以下描述:getPoolSize:线程池的线程数量。如果线程池不销毁的话,线程池里的线程不会自动销毁,所以这个大小只增不减。
Divenier
·
2023-08-11 02:02
JUC
并发编程之同步器(Semaphore、CountDownLatch、CyclicBarrier、Exchanger、CompletableFuture)附带相关面试题
在
JUC
中引入了Semaphore资源调度,通过设置固定的资源量,让线程进行争取
Alphamilk
·
2023-08-11 01:17
java
java
开发语言
java高并发系列 - 第16天:
JUC
中等待多线程完成的工具类CountDownLatch,必备技能
java高并发系列-第16天:
JUC
中等待多线程完成的工具类CountDownLatch,必备技能这是java高并发系列第16篇文章。
懒羊羊--搞点小技术
·
2023-08-10 15:28
线程
java
python
开发语言
java高并发系列 - 第15天:
JUC
中的Semaphore(信号量)
java高并发系列-第15天:
JUC
中的Semaphore(信号量)java高并发系列第15篇文章Semaphore(信号量)为多线程协作提供了更为强大的控制方法,前面的文章中我们学了synchronized
懒羊羊--搞点小技术
·
2023-08-10 15:24
线程
java
python
开发语言
金九银十面试题之《
JUC
》
辛苦牛,掌握主流技术栈,包括前端后端,已经7年时间,曾在税务机关从事开发工作,目前在国企任职。希望通过自己的不断分享,可以帮助各位想或者已经走在这条路上的朋友一定的帮助目录前言内容Q1:什么是CAS?Q2:CAS有什么问题?Q3:有哪些原子类?Q4:AtomicIntger实现原子更新的原理是什么?Q5:CountDownLatch是什么?Q6:CyclicBarrier是什么?Q7:Semaph
牛一头
·
2023-08-10 14:53
牛的面试
java
JUC
并发原理
文章目录
JUC
并发synchronized锁对象底层原理synchronized锁升级无锁偏向锁轻量级锁重量级锁JIT对锁的优化:锁消除和锁粗化reentrantlock公平锁和非公平锁可重入锁/递归锁死锁死锁产生条件如何排查死锁
连连斯基
·
2023-08-10 14:08
Java
java
哈希算法
jvm
JUC
并发编程(二)ForkJoinPool、Future、CompletableFuture、CAS
文章目录ForkJoin分治工作窃取ForkJoinPool与ThreadPoolExecutor使用案例不带返回值的计算--RecursiveAction带返回值的计算--RecursiveTaskFuture异步回调烧水案例join实现FutureTask实现CompletableFuture为什么叫CompletableFuture?创建异步任务supplyAsyncrunAsync获取任务
连连斯基
·
2023-08-10 14:38
Java
java
开发语言
JUC
并发编程(一)Synchronized、Lock、CountDownLatch、ReadWriteLock、BlockingQueue、TreadPoolExecutor
Synchronizedsynchronized解决Lock锁synchronized锁与Lock锁的区别生成者消费者问题synchronized实现lock版实现-conditioncondition实现精准通知唤醒Callable
JUC
连连斯基
·
2023-08-10 14:37
Java
python
算法
开发语言
【
Java并发编程
】再现ABA问题与解决ABA问题
文章目录1.什么是ABA问题2.如何解决ABA问题1.什么是ABA问题如果另一个线程把值A,先修改为B,再修改为A。当前线程看到的值还是A,并不知道值中间是否发生过变化。这就是ABA问题。举个:在你非常渴的情况下你发现一个盛满水的杯子,你一饮而尽。之后再给杯子里重新倒满水。然后你离开,当杯子的真正主人回来时看到杯子还是盛满水,他当然不知道是否被人喝完重新倒满。我们考虑下面一种ABA的情况:在多线程
Fire Fish
·
2023-08-10 06:33
java
java
开发语言
【
Java并发编程
】使用CompletableFuture最佳实践
文章目录1.什么是CompletableFuture2.为什么需要CompletableFuture3.使用CompletableFuture创建类接续类(thenXxx)4.使用CompletableFuture的一般范式CompletableFuture是Future的增强版,是多线程开发的利器。本文通俗易懂的介绍了CompletableFuture的用法,最后祭出CompletableFut
Fire Fish
·
2023-08-10 05:56
java
java
多线程并发和并行的区别
背景 对于java开发从业人员来说,并发编程是绕不开的话题,
juc
并发包下提供了一系列多线程场景解决方案。
鲫鱼哥
·
2023-08-10 01:03
多线程
java
多线程
并发编程
并行计算
【连载】第3章-3.1.2-4可见性(long在多线程下不具有原子性)
《
JAVA并发编程
实战》解读【连载】第3章-3.1.2-4可见性回顾:上一节聊了共享变量,如果多线程共有,可能会导致失效的风险,增加synchronized保护后,可以避免风险的发生,这一节聊一聊可见性的其他问题和解决方式
可爱猪猪
·
2023-08-09 13:14
Java并发之原子变量及CAS算法-下篇
Java并发之原子变量及CAS算法-下篇概述本文主要讲在
Java并发编程
的时候,如果保证变量的原子性,在JDK提供的类中式怎么保证变量原子性的呢?。
凯哥Java
·
2023-08-09 08:06
Java并发编程
之顺序一致性
如果程序是正确同步的,程序的执行将具有顺序一致性(SequentiallyConsistent)——即程序的执行结果与该程序在顺序一致性内存模型中的执行结果相同。同步,即排队。同一时刻,只能有一个线程和内存交互!!顺序一致性内存模型两大特性一个线程中的所有操作必须按照程序的顺序来执行。(不管程序是否同步)所有线程都只能看到一个单一的操作执行顺序。在顺序一致性内存模型中,每个操作都必须原子执行且立刻
yYahoo~
·
2023-08-09 02:45
并发编程
Java
java
JUC
并发编程(
JUC
核心类、TimeUnit类、原子操作类、CASAQS)附带相关面试题
目录1.
JUC
并发编程的核心类2.TimeUnit(时间单元)3.原子操作类4.CAS、AQS机制1.
JUC
并发编程的核心类虽然java中的多线程有效的提升了程序的效率,但是也引发了一系列可能发生的问题
Alphamilk
·
2023-08-09 02:34
java
开发语言
java
上一页
30
31
32
33
34
35
36
37
下一页
按字母分类:
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
其他