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并发编程学习笔记
我为什么不再推荐 RxJava?
源码解析数据库中间件Sharding-JDBC和MyCAT源码解析作业调度中间件Elastic-Job源码解析分布式事务中间件TCC-Transaction源码解析Eureka和Hystrix源码解析
Java
公众号-芋道源码
·
2023-10-13 10:23
Java并发
之AQS详解(二)源码解析
1介绍在
Java并发
之AQS详解(一)中,已经对AQS中主要的类,重点方法、流程进行了分析,本文针对一些重点的方法逻辑进行源码层面的解读分析。不对的地方欢迎大家指正交流。
修 己
·
2023-10-13 03:39
Java多线程
java
多线程
队列
并发编程
Java并发
编程AQS详解
本文内容及图片代码参考视频:https://www.bilibili.com/video/BV12K411G7Fg/?spm_id_from=333.788.recommend_more_video.-1AQS,全称AbstractQuenedSynchronizer,可以理解为抽象的队列同步器。所谓抽象就代表着这个类要被继承和复用,实际上AQS这个类也确实是Java实现多线程并发编程的中必不可少
MordenX
·
2023-10-13 03:38
java
java并发
之AQS详解 ReentrantLock
AQS原理分析什么是AQSjava.util.concurrent包中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这些行为的抽象就是基于AbstractQueuedSynchronizer(简称AQS)实现的,AQS是一个抽象同步框架,可以用来实现一个依赖状态的同步器。JDK中提供的大多数的同步器如Lock,Latch,Barrier等,都是基于AQ
zhenghehehe
·
2023-10-13 03:08
多线程
java
开发语言
后端
Java 并发之 AQS 详解(上)
Java并发
之AQS详解前言JavaSDK为什么要设计Lock死锁问题synchronized的局限性显式锁LockLock使用范式Lock是怎样起到锁的作用呢?
徐俊生
·
2023-10-13 03:07
Java基础
多线程
java
AQS
ReentrantLock
Java 并发之 AQS 详解(下)
Java并发
之AQS详解前言独占式释放同步状态中断恢复后的执行流程AQS应用ReentrantLock是如何应用的AQS为什么会有公平锁/非公平锁的设计?
徐俊生
·
2023-10-13 03:07
Java基础
多线程
java
AQS
ReentrantLock
Java并发
之AQS详解
一、概述谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch…。以下是本文的目录大纲:概述框架源码详解简单应用
Arthur-Ji
·
2023-10-13 03:37
Java
java并发
之AQS详解(待更)
而对于java程序员来说,并发编程就变得容易得多了,因为并发编程大师DougLea为Java开发者提供了很多的并发容器和框架,而AQS就是
java并发
包下的一个核心框架。
小蓝的快乐学习之旅
·
2023-10-13 03:06
java
python
开发语言
十一、Java中的并发工具类
转《
Java并发
编程的艺术-第8章》1.等待多线程完成的CountDownLatchJDk1.5提供了一个非常有用的包,Concurrent包,这个包主要用来操作一些并发操作,提供一些并发类,可以方便在项目当中傻瓜式应用
沉沦2014
·
2023-10-13 03:41
Java并发
编程之Future原理分析
一、多线程编程概述在Java中,多线程编程是一种常见的编程模式,它允许程序同时执行多个线程,以提高程序的执行效率。然而,如果每个线程都创建和销毁线程,这将带来巨大的开销。为了解决这个问题,Java提供了线程池,它是一个重用的线程集合,可以减少创建和销毁线程的开销。二、线程池的使用Java中的线程池可以通过Executors类来创建,例如:ExecutorServiceexecutor=Execut
隐 风
·
2023-10-13 00:30
java进阶部分笔记
java
开发语言
面试
多线程
高并发
Linux 网络
编程学习笔记
——十二、高性能 I/O 框架库 Libevent
目录在处理I/O事件、信号和定时事件时,需要考虑如下三个问题:统一事件源:很明显,统一处理这三类事件既能使代码简单易懂,又能避免一些潜在的逻辑错误。可移植性:不同的操作系统具有不同的I/O复用方式,比如Solaris的dev/poll文件,FreeBSD的kqueue机制,Linux的epoll系列系统调用。对并发编程的支持:在多进程和多线程环境下,我们需要考虑各执行实体如何协同处理客户连接、信号
BeZer0
·
2023-10-12 23:49
计算机网络
linux
网络
服务器
Java并发
指南1:并发基础与Java多线程
https://github.com/h2pl/Java-Tutorial喜欢的话麻烦点下Star哈文章同步发于我的个人博客:www.how2playlife.com本文是微信公众号【Java技术江湖】的《
Java
da3acf50377b
·
2023-10-12 19:31
【并发】
Java并发
编程Semaphore类 同时只能做X件事 限流
【并发】
Java并发
编程Semaphore类同时只能做X件事限流场景食堂打饭,总共3个打饭窗口,100个学生,同时只能让3个学生打饭Semaphoresem=newSemaphore(3);//3个食堂窗口
我是Superman丶
·
2023-10-12 11:29
并发线程
java
开发语言
【C#8.0 and .NET Core 3.0 高级
编程学习笔记
】
@C#8.0and.NETCore3.0高级
编程学习笔记
前言为了能精细地完成对C#语言的学习,我决定选择一本书,精读它,理解它,记录它。
不会飞的三脚猫
·
2023-10-12 10:51
学习笔记
c#
Netty深入浅出Java网络
编程学习笔记
(三) 优化篇
目录五、优化1、拓展序列化算法序列化接口枚举实现类修改原编解码器2、参数调优CONNECT_TIMEOUT_MILLIS使用源码分析SO_BACKLOG三次握手与连接队列作用默认值TCP_NODELAYSO_SNDBUF&SO_RCVBUFALLOCATOR使用ByteBufAllocator类型RCVBUF_ALLOCATOR3、RPC框架准备工作RpcRequestMessageHandler
学徒630
·
2023-10-12 08:29
Netty
java
学习
笔记
Netty深入浅出Java网络
编程学习笔记
(一) Netty入门篇
目录一、概述1、什么是Netty2、Netty的优势二、入门案例1、服务器端代码2、客户端代码3、运行流程组件解释三、组件1、EventLoop处理普通与定时任务关闭EventLoopGroup处理IO任务服务器代码客户端代码分工细化划分Boss和Work增加自定义EventLoopGroup切换的实现2、ChannelChannelFuture连接问题处理关闭为什么Netty要将多个API调用N
学徒630
·
2023-10-12 08:28
Netty
java
网络
学习
网络
编程学习笔记
网络基础协议的概念什么是协议从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。假设,A、B双方欲传输文件。规定:第一次,传输文件名,接收方接收到文件名,应答OK给传输方;第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A、B之间
Mona______
·
2023-10-12 08:23
书不读
不成器
自思量
知不易
网络编程
Netty深入浅出Java网络
编程学习笔记
(二) Netty进阶应用篇
目录四、应用1、粘包与半包现象分析粘包半包本质解决方案短链接定长解码器行解码器长度字段解码器——LTC2、协议设计与解析协议的作用Redis协议HTTP协议自定义协议组成要素编码器与解码器编写测试类@Sharable注解自定义编解码器能否使用@Sharable注解3、在线聊天室聊天室业务用户登录接口用户会话接口群聊会话接口整体结构客户端代码结构服务器代码结构登录客户端代码服务器代码运行结果单聊群聊
学徒630
·
2023-10-12 08:21
Netty
网络
学习
笔记
八股文目录
计算机基础操作系统计算机网络数据结构数据库系统Java语法基础JavaIO和网络Java集合框架
Java并发
编程JVM框架SSMSBSC中间件mysqlnosqlmq搜索引擎zookeeperdubbo
xl拾一
·
2023-10-11 19:26
笔记
spring
java
spring
boot
java并发
编程系列-内存模型基础
java线程之间的通信对程序开发人员是完全透明的,内存的可见性问题很容易困扰很多开发人员。本篇博文将揭开java内存模型的神秘面纱,来看看内存模型到底是怎样的。并发编程模型的分类并发编程中需要处理的两个关键问题:线程之间如何通信线程之间如何同步所谓通信是指线程之间以何种机制来交换信息,在命令式编程中,线程的通信机制有两种:共享内存(隐式通信:通过共享程序的公共状态,读-写内存中的公共状态实现)消息
起个名忒难
·
2023-10-11 14:32
Java并发
工具CountDownLatch使用详解
本文目录1、使用场景2、使用介绍3、使用案例4、Thread.join()和CountDownLatch的区别1、使用场景通过使用CountDownLatch可以使当前线程阻塞,等待其他线程完成给定任务。可以类比旅游团导游要等待所有的游客到齐后才能去下一个景点。CountDownLatch主要应用场景:一个线程等待多个线程完成给定任务后,然后执行后续的操作的场景。2、使用介绍CountDownLa
warybee
·
2023-10-11 09:13
JavaSE
java
CountDownLatch
Java并发
编程系列34:CountDownLatch使用
CountDownLatch使用3.1、CountDownLatch介绍CountDownLatch(闭锁/门阀)是一个同步协助类,允许一个或多个线程等待,直到其他线程完成操作集。1、CountDownLatch使用给定的计数值(count)初始化2、await阻塞等待3、countDown方法count--方法//调用await()方法的线程会被挂起,等待直到count值为0才继续执行publi
fen_fen
·
2023-10-11 09:35
#
JAVA多线程编程
java相关
java
开发语言
【
Java并发
工具类】CountDownLatch适用场景介绍
文章目录一、CountDownLatch基本介绍二、主要用途1.启动信号2.完成信号三、场景实现1.启动信号、完成信号2.并行计算一、CountDownLatch基本介绍CountDownLatch是JDK提供的一种同步工具,使用它的API可以方便的实现一个或者多个线程等待其他一个或多个线程执行某项任务完成的需求。CountDownLatch通过给定的count进行初始化,然后调用await方法阻
码拉松
·
2023-10-11 09:04
并发编程
java
开发语言
Java并发
包基础回顾
1.ConcurrentHashMap原理:ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的HashTable,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可以并发进行。把一个整体分成了16个段(Segment.也就是最高支持16个线程的并发修改操作。这也是在重线程场景时减小锁的粒度从而降低锁竞争的一种方案。并且代码中大多共享变
魂之挽歌w
·
2023-10-11 08:54
Java并发
一、线程池线程池:事先将多个线程放到容器中,用的时候不用New线程,直接从池中获取。Java中的线程池有:1、newCachedThreadPool:线程数量没有限制,有空闲线程则复用空闲线程,没有则新建线程,一定程度上减少频繁创建、销毁线程,减少系统开销。
微笑的鱼_c2be
·
2023-10-10 15:34
linux环境
编程学习笔记
,Linux shell编程命令-Linux基础环境命令学习笔记(示例代码)...
1、正则表达式1)^开始*前一个字符重复0次以上+1次以上?0次或者1次.一个任意字符(.*连用){m,n}m到n次[0-9][a-z]任意数字或字母$结束字符2)sed和awk命令sed‘匹配条件/执行的动作‘/etc/passwdsed‘s/old/new/g‘awk-F:‘{print$1}‘/etc/passwd1表示第一列,2表示第二列-F:表示分隔符为:2、变量1)环境变量系统环境变量
沙金锐
·
2023-10-10 13:03
linux环境编程学习笔记
Linux shell
编程学习笔记
9:字符串运算 和 if语句
LinuxShell脚本编程和其他编程语言一样,支持算数、关系、布尔、字符串、文件测试等多种运算,同样也需要进行根据条件进行流程控制,提供了if、for、while、until等语句。上期学习笔记中我们研究了字符串数据的使用,今天我们研究字符串运算,为了应用实例进行讲解,我们同时研究了进行判断的时候经常使用的if语句。一、常用字符串运算符运算符说明=检测两个字符串是否相等,相等返回0(true),
紫郢剑侠
·
2023-10-10 13:22
Linux世界
系统维护
编程资料
linux
shell脚本
shell编程
字符串操作
字符串运算
条件表达式
学习笔记
解决多线程间共享变量线程安全问题的大杀器——ThreadLocal
这期,我们来聊一聊一个在
Java并发
编程中很重要的类:ThreadLocal在多线程应用程序中,对共享变量进行读写的场景是很常见的。如果不使用一定的技术或方案,会引发各种线程安全的问题。
YHJ
·
2023-10-10 10:58
多线程
ThreadLocal 本地线程变量介绍及使用场景
Java并发
API提供了一个很清楚的机制叫本地线程变量即ThreadLocal。模拟T
猿小许
·
2023-10-10 10:58
Java
java并发
与多线程(五):线程池
1、线程池的好处线程使应用能够更加充分合理地协调利用CPU、内存、网络、I/O等系统资源。线程的创建需要开辟虚拟机栈、本地方法栈、程序计数器等线程私有的内存空间。在线程销毁时需要回收这些系统资源。频繁地创建和销毁线程会浪费大量的系统资源,增加并发编程风险。另外,在服务器负载过大的时候,如何让新的线程等待或者友好地拒绝服务?这些都是线程自身无法解决的。所以需要通过线程池协调多个线程,并实现类似主次线
姜小姜小
·
2023-10-10 08:02
CountDownLatch闭锁原理解析
CountDownLatch闭锁原理解析在
Java并发
编程中,CountDownLatch是一个常用的工具类,用于实现闭锁(latch)。
隐 风
·
2023-10-10 08:22
java进阶部分笔记
java
面试
多线程
高并发
Java并发
编程之ReentrantLock重入锁原理解析
Java并发
编程之ReentrantLock重入锁原理解析在多线程编程中,同步是一种重要的技术,用于控制对共享资源的并发访问。
隐 风
·
2023-10-10 08:22
java进阶部分笔记
java
面试
多线程
高并发
CyclicBarrier:
Java并发
编程中的循环屏障原理解析
CyclicBarrier:
Java并发
编程中的循环屏障在
Java并发
编程中,CyclicBarrier是一种非常有用的工具,允许多个线程相互等待,直到所有参与的线程都达到一个特定的屏障点。
隐 风
·
2023-10-10 08:21
java进阶部分笔记
java
开发语言
多线程
面试
高并发
java架构师进阶必备书单
java基础知识篇java编程思想
java并发
编程的艺术effectivejava第三版数据库篇深入浅出mysql第二版高性能mysql第三版mongodb权威指南缓存篇redis开发与运维redis设计与实现第二版服务器软件篇
muli523
·
2023-10-10 05:53
java
架构
spring
boot
spring
cloud
spring
2020年万字
Java并发
编程面试题整理【含答案,建议收藏】
Java并发
编程1、在java中守护线程和本地线程区别?2、线程与进程的区别?3、什么是多线程中的上下文切换?4、死锁与活锁的区别,死锁与饥饿的区别?5、Java中用到的线程调度算法是什么?
Java挣扎者
·
2023-10-10 05:19
java多线程(二十)线程安全集合类
基于白嫖B站黑马程序员视频:全面深入学习
java并发
编程,java基础进阶中级必会教程目录1问题2线程安全集合类2.1遗留的安全集合2.2修饰的安全集合2.3J.U.C安全集合类3ConcurrentHashMap3.1
你佳哥
·
2023-10-09 18:37
java多线程
java
多线程
并发编程
2、
Java并发
编程入门与高并发面试-课程基础
慕课网Jimin老师
Java并发
编程入门与高并发面试学习笔记
Java并发
编程入门与高并发面试CPU多级缓存image.png为什么需要CPUcache:CPU的频率太快了,快到主存跟不上,这样在处理器时钟周期内
安安汐而
·
2023-10-09 17:51
java并发
编程(3):Concurrent包中BlockingQueue阻塞队列详解
认识BlockingQueue阻塞队列一.前言在新增的Concurrent包(建议大家去学习了解一下,针对线程安全,多线程并发做的工具包)中,BlockingQueue阻塞队列很好的解决了在多线程中,高效的安全的解决”数据传输“问题,通过使用这些线程安全的队列类,为我们搭建高质量的多线程程序带来了极大的便利。二.认识BlockingQueue阻塞队列:队列,在数据结构中的作用如图:常用的队列主要有
学后端的小萝卜头
·
2023-10-09 17:48
阻塞队列
线程使用
java
java
并发编程
Java并发
编程-synchronized关键字
synchronized关键字
Java并发
编程时,遇到多线程抢占共享资源的问题,都知道要给共享资源加锁。
zenmesir1
·
2023-10-09 12:00
并发编程
java
并发编程
Java-并发理论-关键字-synchronized
前言获取
Java并发
编程思维导图:
Java并发
编程-首页关注微信公众号及时推送更多知识:当代猿内容详情
huahua.Dr
·
2023-10-09 12:55
Java并发编程
java
并发编程
java并发
编程---synchronized关键字
在并发编程中,多线程同时并发访问的资源叫做临界资源,当多个线程同时访问对象并要求操作相同资源时,分割了原子操作就有可能出现数据的不一致或数据不完整的情况,为避免这种情况的发生,我们会采取同步机制,以确保在某一时刻,方法内只允许有一个线程。采用synchronized修饰符实现的同步机制叫做互斥锁机制,它所获得的锁叫做互斥锁。每个对象都有一个monitor(锁标记),当线程拥有这个锁标记时才能访问这
影子的格子
·
2023-10-09 12:54
java并发编程
synchronized
java并发编程
Java并发
编程(二)-----synchronized关键字及死锁
synchronized话不多说先上图1.为什么要使用synchronized在并发编程中存在线程安全问题,主要原因有:1.存在共享数据2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile。2.实现原理synchronized可以保证方法或
niu_8865
·
2023-10-09 12:50
多线程
多线程
并发编程
java并发
编程--synchronized关键字
packagecn.bufanli.test;/***关键字synchronized关键字取得的锁都是对象锁,而不是一段代码(方法)当做锁*所以代码中哪个线程synchronized关键字的方法哪个线程就持有该方法所属对象的锁(lock)*多线程多个锁:多个线程每个线程都可以拿到自己指定的锁.分别获得锁之后,执行synchronized方法体的内*容*在静态方法上加synchronized关键字,
别浪呀
·
2023-10-09 12:15
java并发编程
java并发编程
java thread wait参数_深入理解
Java并发
编程之线程Thread
前言现代操作系统在运行一个程序时,会为其创建一个进程。例如,启动一个Java程序,操作系统就会创建一个Java进程。现代操作系统调度的最小单元是线程,也叫轻量级进程(LightWeightProcess),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉到这些线程在同时执行。Java线程通过调用线程
weixin_39594457
·
2023-10-09 11:24
java
thread
wait参数
深入理解Java线程的等待与唤醒机制(二)
也正因此,
Java并发
成了Java面试中最高频的知识点之一。本系列文章将从Java内存模型、volatile关键字、synchronized关键字、ReetrantLock、Atom
我赌一包辣条
·
2023-10-09 11:47
Java进阶
多线程与并发
Condition
await
signal
等待与唤醒
Java并发
编程艺术(二) Java内存模型
1、Java内存模型基础1.1并发编程模型的两个关键问题线程之间如何通信、线程之间如何同步。1.2Java内存模型的抽象结构所有实例域、静态域和数组元素都存储在堆内存中,堆内存在线程之间共享。局部变量、方法定义参数和异常处理器参数不会再线程之间共享。Java线程之间通信由Java内存模型控制。线程之间的共享变量存储在主内存中,每个线程都有一个私有的本地内存,本地内存中存储了该线程以读写共享变量的副
kaiker
·
2023-10-09 08:16
JUC-
Java并发
编程
1.什么是JUCjava.util.concurrentjava.util工具包业务:普通的线程代码ThreadRunnable没有返回值,效率比Callable相对较低!一般使用Callable2.线程和进程进程:一个程序,QQ.exe程序的集合.一个进程可以包含多个进程,至少包含一个.java默认有两个线程mainGC线程:开了一个进程Typora,写字,自动保存(线程负责)进程是一个具有一定
深蓝梦夕阳
·
2023-10-09 00:38
狂神说
java
Java线程池:并发编程的利器
Java线程池:并发编程的利器在多任务、高并发的时代,
Java并发
编程显得尤为重要。其中,Java线程池是一种高效的管理线程的工具,能够提高应用程序的性能和响应速度。
隐 风
·
2023-10-08 23:55
java进阶部分笔记
java
高并发
多线程
面试
LinkedBlockingQueue:
Java并发
编程的强大工具
LinkedBlockingQueue:
Java并发
编程的强大工具在
Java并发
编程中,LinkedBlockingQueue是一个非常重要的数据结构,它是一个线程安全的队列,能够有效地管理和控制多线程环境中的任务
隐 风
·
2023-10-08 23:55
java进阶部分笔记
java
面试
多线程
高并发
Java并发
编程:什么是CAS?这回总算知道了
无锁的思想众所周知,Java中对并发控制的最常见方法就是锁,锁能保证同一时刻只能有一个线程访问临界区的资源,从而实现线程安全。然而,锁虽然有效,但采用的是一种悲观的策略。它假设每一次对临界区资源的访问都会发生冲突,当有一个线程访问资源,其他线程就必须等待,所以锁是会阻塞线程执行的。当然,凡事都有两面,有悲观就会有乐观。而无锁就是一种乐观的策略,它假设线程对资源的访问是没有冲突的,同时所有的线程执行
哦00
·
2023-10-08 22:55
上一页
14
15
16
17
18
19
20
21
下一页
按字母分类:
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
其他