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并发】
Java并发
工具类
JDK并发包中常用并发工具类:CountDownLatch、CyclicBarrier和Semaphore工具类提供了一种并发流程控制的手段;Exchanger工具类则提供了在线程间交换数据的一种手段。等待多线程完成的CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。需求:解析一个Excel里多个sheet的数据,可以考虑使用多线程,每个线程解析一个s
Likelong~
·
2023-08-26 23:25
#
juc
java
开发语言
【一文读懂】
Java并发
- 锁升级原理
要明白锁的原理,首先要知道对象头Java对象头在Java中,一个对象一般由两部分组成:1、对象头;2、对象的成员变量信息在32位的虚拟机中:(1)普通对象的对象头长度64bit(8字节):其中的32bit是MarkWord,另外32位是KlassWord,如下:MarkWord(32bits)KlassWord(32bits)(2)数组对象的对象头长度96bit(12自己):除了MarkWord和
Fearless____
·
2023-08-26 09:44
Java并发
Java并发
java并发
编程小结
线程简介:线程是操作系统调度的最先单元,进程:线程=1:N关系,也就是说一个进程可以创建多个线程,至少包含一个线程。多线程可以最大限度的使用CPU和维护各线程之间的并发进行关系等。一、concurrent并发包locks部分:显式锁(互斥锁和速写锁)相关;atomic部分:原子变量类相关,是构建非阻塞算法的基础;executor部分:线程池相关;collections部分:并发容器相关;tools
程序大视界
·
2023-08-26 01:27
并发编程-CAS
Java并发
编程中,除了通过synchronized进行并发控制外,还可以通过CAS(CompareAndSet)的方式控制,大家熟悉的ReentrantLock内部实现大量采用CAS进行控制。
小三鹅
·
2023-08-26 00:37
这份
java并发
编程高级面试专栏,为你解忧!
三、并发编程高级面试专栏1、Synchronized用过吗?其原理是什么2这是一道Java面试中几乎百分百会问到的问题,因为没有任何写过并发程序的开发者会没听说或者没接触过Synchronized。Synchronized是由JVM实现的一种实现互斥同步的一种方式,如果你查看被Synchronized修饰过的程序块编译后的字节码,会发现,被Synchronized修饰过的程序块,在编译前后被编译器
套马杆的程序员
·
2023-08-25 21:32
《玩转
Java并发
工具、精通JUC、成为并发多面手》构建高性能缓存
引言《玩转
Java并发
工具、精通JUC、成为并发多面手》构建高性能缓存这部分的个人笔记。本节为单纯的实战,主要是把之前学习并发编程的知识点串起来。
·
2023-08-24 23:14
缓存设计java
Java多线程基础-11:工厂模式及代码案例之线程池
JUC是java.util.concurrent这个包的简写,其中存放了
Java并发
框架为协调并发任务所提供的一些工具。本文介绍其中的Executors、ThreadPoolExecutor类。
碳基肥宅
·
2023-08-24 13:49
#
SSM
Java
java
开发语言
JavaWeb
线程池
多线程编程
【每日3分钟技术干货 | 面试题+答案 | 分布式锁篇(一)】
为了保证一个方法在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用
Java并发
处理相关的API(如ReentrantLcok或synchronized)进行互斥控制。
程序员大宇
·
2023-08-24 11:00
java并发
包&线程池原理分析&锁的深度化
java并发
包&线程池原理分析&锁的深度化并发包同步容器类Vector与ArrayList区别1.ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。
天空鸟_时光不老
·
2023-08-24 09:01
多线程
多线程
线程安全
并发队列
线程池
备战2020年:Java研发岗千道面试题总结:MyBatis+Redis+Spring...
互联网Java工程师面试题MyBatis(27道)ZooKeeper(28道)Dubbo(30道)Elasticsearch(24道)Memcached(23道)Redis(40道)MySQL(50道)
Java
风平浪静如码
·
2023-08-24 06:09
Java并发
编程:线程池
1.概述1.1线程池的特点线程池(ThreadPool)是一种基于池化思想帮助我们管理线程而获取并发性的工具,经常出现在多线程服务器中,如MySQL。线程池的实现思路:提前创建好多个线程,让这些线程处于就绪状态来提高系统响应速度,放入线程池中,使用时直接获取,使用完放回池中,可以避免频繁创建销毁,实现重复利用。内存池(MemoryPooling):预先申请内存,提升申请内存速度,减少内存碎片。连接
coder1qiang
·
2023-08-24 02:24
Java并发编程
多线程
java
并发编程
java并发
编程(六)
java多线程编程(六)数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分为下列3种类型,如下表所示。名称代码示例说明写后读a=1;b=a;写一个变量后,再读这个位置写后写a=1;a=2;写一个变量后,再写这个变量读后写a=b;b=1;读一个变量之后,再写这个变量上面三种操作,只要重排序两个操作的执行顺序,程序的执行结果就会改变。前面
RoundYuan
·
2023-08-24 01:52
24.volatile关键字的作用、volatile原理、可见性、内存屏障、volatile性能、transient
.volatile关键字的作用24.1.volatile原理24.2.可见性24.3.内存屏障24.4.volatile性能25.transient24.volatile关键字的作用volatile在
Java
涂作权的博客
·
2023-08-23 23:17
#
JVM
深入理解CPU密集型与IO密集型任务、线程池如何选择?
目录1、理解什么是CPU密集型与IO密集型1.1CPU密集型概念解释策略1.2I/O密集型概念解释策略2、《
Java并发
编程实践》:具体的线程数该如何设置?线程池参数如何设置?
好奇的7号
·
2023-08-23 14:04
面试
职场和发展
java
juc
并发
线程池
最新
Java并发
面试题,20000字答案解析
1、在java中守护线程和本地线程区别?java中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon(boolon);true则把该线程设置为守护线程,反之则为用户线程。Thread.setDaemon()必须在Thread.start()之前调用,否则运行时会抛出异常。两者的区别:唯一的区别是判断虚拟机
AI乔治
·
2023-08-23 00:19
18-并发容器之CopyOnWriteArrayList
从JDK1.5开始
Java并发
包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是:CopyOnWriteArra
史路比
·
2023-08-22 20:52
Java并发
三大利器之深度解析
推荐阅读AI文本OCR识别最佳实践AIGamma一键生成PPT工具直达链接玩转cloudStudio在线编码神器玩转GPUAI绘画、AI讲话、翻译,GPU点亮AI想象空间资源分享「java、python面试题」来自UC网盘app分享,打开手机app,额外获得1T空间https://drive.uc.cn/s/2aeb6c2dcedd4AIGC资料包https://drive.uc.cn/s/607
KK_crazy
·
2023-08-22 20:10
java
开发语言
音视频开发(四十五):
Java并发
编程 之内存模型与volatile
目录JVM内存结构和内存模型并发编程中的三个概念与重排序happens-before原则volatile原理volatile使用场景一、JVM内存结构和内存模型1.1JVM内存结构Java虚拟机在运行程序时会把其自动管理的内存划分为以上几个区域,每个区域都有的用途以及创建销毁的时机方法区属于线程共享的内存区域,主要用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。Jav
音视频开发老舅
·
2023-08-22 16:08
音视频开发进阶
音视频
实时音视频
实时互动
视频编解码
webrtc
Java并发
体系
见:GitHub-eHackyd/Java_Concurrency:
java并发
知识体系的学习笔记
eHackyd
·
2023-08-22 15:10
Java
java
突击并发编程JUC系列-启航篇
Java并发
编程对于开发者来说是难点也是重点,想要掌握学会并发编程,并不是一件很容易的事情,从本篇文章跟我一起攻克
Java并发
编程JUC系列教程吧。
山间木匠1
·
2023-08-22 12:31
java学习-多线程并发一
1.
JAVA并发
知识库2.JAVA线程实现/创建方式2.1.继承Thread类Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。
paterWang
·
2023-08-22 06:35
Java
java
学习
开发语言
Java并发
包学习
该篇学习自我非常喜欢的博主四火同时用代码来学习和理解,整理到我的github项目中了。阻塞队列名称功能BlockingQueue.class阻塞队列接口BlockingDeque.class双端阻塞队列接口ArrayBlockingQueue.class阻塞队列,数组实现LinkedBlockingDeque.class阻塞双端队列,链表实现LinkedBlockingQueue.class阻塞队
废柴傻狗
·
2023-08-22 02:32
【业务功能篇72】分布式锁实现分析
当多个进程在同一个系统中,用分布式锁控制多个进程对资源的访问分布式锁应用场景(1)传统的单体应用单机部署情况下,可以使用
java并发
处理相关的API进行互斥控制。
studyday1
·
2023-08-21 21:01
Java
Spring
boot
分布式
分布式
分布式锁
spring
boot
Java并发
回顾
树叶柔和爽朗的呼吸诗人一路吹着口哨回家一路踢着石子妙想连篇感到夕阳和晚风自古多情自己现在和将来都是个幸福的人系列文章目录Java常见知识点汇总Java集合回顾
Java并发
回顾…文章目录系列文章目录什么是线程和进程
后海 0_o
·
2023-08-21 16:35
Java面试题
java
jvm
开发语言
Java并发
(四)——JUC包下的并发集合类
原文:http://www.cnblogs.com/skywang12345/p/3498454.html之前,在”Java集合系列目录(Category)”中,讲解了Java集合包中的各个类。接下来,将展开对JUC包中的集合进行学习。在学习之前,先温习一下”Java集合包”Java集合包介绍java集合的架构。主体内容包括Collection集合和Map类;而Collection集合又可以划分为
社会你鑫哥
·
2023-08-21 08:50
java多线程
java多线程
Java并发
编程之线程池详解
目录今日良言:不悲伤不彷徨有风听风有雨看雨一、简介二、相关代码1.线程池代码2.自定义实现线程池三、ThreadPoolExecutor类今日良言:不悲伤不彷徨有风听风有雨看雨一、简介首先来介绍一下什么是线程池,线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务并将线程的创建和任务的执行解耦开来。我们可以创建线程池来复用已经创建的线程来降低频繁创建和销毁线程
程序猿小马
·
2023-08-21 00:40
java
开发语言
java并发
与多线程(三):什么是锁
计算机的锁分类有很多种,本书并不打算详细介绍每种锁,而是通过对java.util.concurrent(JUC)包中的基础类的解析来说明锁的本质和特性。Java中常用锁实现的方式有两种。1、用并发包中的锁类并发包的类族中,Lock是JUC包的顶层接口,它的实现逻辑并未用到synchronized,而是利用volatile的可见性。先通过Lock来了解JUC包的一些基础类,如图所示:image.pn
姜小姜小
·
2023-08-19 20:15
【
Java并发
编程面试题(60道)】
toc
Java并发
编程面试题(60道)基础1.并行跟并发有什么区别?从操作系统的角度来看,线程是CPU分配的最小单位。并行就是同一时刻,两个线程都在执行。这就要求有两个CPU去分别执行两个线程。
唯时
·
2023-08-19 15:33
面试八股文积累
Java基础
java
面试
经验分享
2019年度总结
3.阅读《
Java并发
编程的艺术》《实战Java高并发程序设计》将零散的多线程知识点串在了一起4.花
半岛铁板
·
2023-08-19 13:26
随笔情感
2019年度总结
JUC闭锁与AQS技术在启动架构设计中的应用
JUC(Java.util.concurrent)是
Java并发
编程中的一个重要工具包,其中闭锁(CountDownLatch)是一种多线程同步工具,用于等待其他线程完成某个任务后再继续执行。
Android技术栈
·
2023-08-19 12:10
Android
开发
android
Android开发
程序员
移动开发
Android性能优化
juc
aqs
java并发
:synchronized锁详解
背景:在java多线程当中,我们总有遇到过多个线程操作一个共享数据时,而这个最后的代码执行结果并没有按照我们的预期一样得到正确的结果。此时我们就需要让代码执行在操作共享变量时,要等一个线程操作完毕时,另一个线程才能去操作这个共享变量。synchronized锁就能达到这样的目的。在线程A操作某个共享变量时,其他线程想要操作这个对像的话只能先处于等待状态,只有线程A操作完毕后其他线程才能操作这个变量
不是cv专业户
·
2023-08-19 11:56
java
开发语言
jvm
Java的AQS框架是如何支撑起整个并发库的
需要解决哪些场景下的问题互斥模式获取锁抢锁失败入队释放锁小总结共享模式获取共享资源释放共享资源唤醒丢失问题小总结混合模式获取写锁释放写锁获取读锁读锁是否应该阻塞释放读锁小总结栅栏模式等待递减计数条件变量模式等待条件成立条件满足,唤醒等待的节点小总结小结引言AQS抽象队列同步器(AbstractQueuedSynchronizer)作为
Java
Binary Oracle
·
2023-08-19 02:54
#
JUC
java
网络
开发语言
面试准备
1.HashMap&&CurrentHashMap源码分析HashMap源码解析
java并发
编程之ConcurrentHashMap2.常用开源框架中设计模式使用分析常用开源框架中设计模式使用分析23种设计模式
深度思考中
·
2023-08-18 23:44
java 并发 简单使用
文章目录概要代码概要
java并发
简单使用代码publicstaticfinalExecutorServiceEXECUTOR_GENERAL=newThreadPoolExecutor(100,1000,0L
系凌乱鹅
·
2023-08-18 16:24
java
java
开发语言
高并发编程系列:并发容器的原理,7大并发容器详解、及使用场景
并发容器的由来在
Java并发
编程中,经常听到Java集合类,同步容器、并发容器,那么他们有哪些具体分类,以及各自之间的区别和优劣呢?
晴栀吖
·
2023-08-17 06:03
Java并发
编程:深入剖析ThreadLocal
想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。以下是本文目录大纲:一.对ThreadLocal的理解二.深入解析ThreadLocal类三.ThreadLocal的应用场景若有不正之处
03ca2835cf70
·
2023-08-17 02:32
【死磕
Java并发
】—–J.U.C之阻塞队列:DelayQueue
DelayQueue是一个支持延时获取元素的无界阻塞队列。里面的元素全部都是“可延期”的元素,列头的元素是最先“到期”的元素,如果队列里面没有元素到期,是不能从列头获取元素的,哪怕有元素也不行。也就是说只有在延迟期到时才能够从队列中取元素。DelayQueue主要用于两个方面:缓存:清掉缓存中超时的缓存数据任务超时处理DelayQueueDelayQueue实现的关键主要有如下几个:可重入锁Ree
Zal哥哥
·
2023-08-16 14:17
Java并发
之:可见性问题引发的思考
前言本文将以一个java代码的可见性问题作为引子,一步步从硬件层面推导到软件层面,最后引出volatile的作用。文章篇幅较长,需耐心观看。这是作者学习完这块后自己做的整理,若存在描述有误、不清晰和混淆的情况,欢迎评论区及时指正批评!1.存在可见性问题的java代码publicclassVisableDemo{privatestaticbooleanstop=false;publicstaticv
·
2023-08-16 10:29
java并发
悲观锁和乐观锁
Java按照锁的实现分为乐观锁和悲观锁,乐观锁和悲观锁并不是一种真实存在的锁,而是一种设计思想,乐观锁和悲观锁对于理解Java多线程和数据库来说至关重要,那么本篇文章就来详细探讨一下这两种锁的概念以及实现方式。悲观锁悲观锁是一种悲观思想,它总认为最坏的情况可能会出现,它认为数据很可能会被其他人所修改,所以悲观锁在持有数据的时候总会把资源或者数据锁住,这样其他线程想要请求这个资源的时候就会阻塞,直到
·
2023-08-16 10:41
java并发悲观锁乐观锁
java并发
之并发工具类
一、CyclicBarrier1.1什么是CyclicBarrier它允许一组线程互相等待,直到到达某个公共屏障点(commonbarrierpoint)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时CyclicBarrier很有用。因为该barrier在释放等待线程后可以重用,所以称它为循环的barrier。通俗点讲就是:让一组线程到达一个屏障时被阻塞,直到最后一个线程到达
这一刻_776b
·
2023-08-16 09:19
Java并发
编程(七)实践[生产者-消费者]
生产者-消费者概述生产者消费者问题,也称有限缓冲问题,是一个多线程同步问题的经典案例。该问题描述了共享固定大小缓冲区的两个线程在多线程开发中,如果生产者(生产数据的线程)处理速度很快,而消费者(消费数据的线程)处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决这种生产消费能力不均衡的问题,便有了生产者和消费者模式具
奉先节度使
·
2023-08-16 04:57
#
Java
java
Java并发
编程(五)线程同步 下 [CAS/原子类/同步容器类/同步工具类]
CAS概述CAS全称为Compare-And-Swap。它是一条CPU的原子指令,是硬件对于并发操作共享数据的支持。其作用是CPU在某个时刻比较两个值是否相等核心原理:在操作期间CAS先比较下主存中的值和线程中工作内存中的值是否相等,如果相等才会将主存中的值更新为新值,不相等则不交换(如果不相等则会一直通过自旋方式尝试更新值)CAS指令存在如下问题:ABA问题:两个时刻比较值都会存在ABA问题,原
奉先节度使
·
2023-08-16 04:27
#
Java
java
Java并发
编程(六)线程池[Executor体系]
概述在处理大量任务时,重复利用线程可以提高程序执行效率,因此线程池应运而生。它是一种重用线程的机制,可以有效降低内存资源消耗提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行线程池可以帮助我们更好地管理线程的生命周期和资源使用,避免线程频繁地创建和销毁带来的性能问题同时,线程池还可以提供一些额外的功能,例如线程池的大小控制、线程池的任务队列、线程池的拒绝策略等。线程池中通常维护一
奉先节度使
·
2023-08-16 04:26
#
Java
java
转载】
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并发
| 常见线程安全容器
文章目录简介一、Hash表1、ConcurrentHashMap1.1内部实现原理1.2并发操作方法1.3ConcurrentHashMap与Hashtable的比较二、集合2、CopyOnWriteArrayList2.1内部实现原理2.2Copy-On-Write(COW)设计思想2.3实操三、Map3、ConcurrentSkipListMap3.1跳表(SkipList)3.2并发操作方法
夏诗曼CharmaineXia
·
2023-08-15 17:04
JAVA
java
安全
开发语言
一文吃透
Java并发
高频面试题
内容摘自我的学习网站:topjavaer.cn分享50道
Java并发
高频面试题。线程池线程池:一个管理线程的池子。为什么平时都是使用线程池创建线程,直接new一个线程不好吗?
·
2023-08-15 16:19
后端java
Java并发
编程:CAS和AQS
一、什么是CASCAS(CompareAndSwap),即比较并交换。是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数————内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。无论哪种情况,它都会在CAS指令之前返回该位置的值。CAS有效地说明了“我认为位置V应该包含值A;如果包
程序员116号
·
2023-08-15 11:43
Java并发
之ReentrantLock
AQSAQS(AbstractQueuedSynchronizer):抽象队列同步器,是一种用来构建锁和同步器的框架。在是JUC下一个重要的并发类,例如:ReentrantLock、Semaphore、CountDownLatch、LimitLatch等并发都是由AQS衍生出来的。理解CLH队列是一种基于链表的可扩展,高性能,公平的自旋锁。它的队列中每个节点等待前驱节点释放锁,当前置节点执行完成,
qq_27502511
·
2023-08-15 05:21
java
开发语言
上一页
17
18
19
20
21
22
23
24
下一页
按字母分类:
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
其他