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
并发编程系列
】深入理解Java并发机制:CAS算法与原子类在Java中的实践应用(二、CAS)
文章目录【JUC
并发编程系列
】深入理解Java并发机制:CAS算法与原子类在Java中的实践应用(二、CAS)1.同步之原子类(Atomic类)2.使用atomicInteger计数3.使用atomicInteger
无理 Java
·
2024-08-29 11:24
JUC并发编程系列
java
JUC
并发编程
并发机制
CAS
后端
面试
Ainx-V0.2-简单的连接封装与业务绑定
本文收录于Ainx系列,大家有兴趣的可以看一看相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看Java
并发编程系列
,设计模式系列、goweb开发框架系列正在发展中,
过去日记
·
2024-02-12 03:27
AINX
开发语言
go
tcp
golang
Ainx框架实现 一
本文收录于Ainx系列,大家有兴趣的可以看一看相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看Java
并发编程系列
,设计模式系列、goweb开发框架系列正在发展中,
过去日记
·
2024-02-05 00:19
AINX
go
网络
golang
Golang中make与new有何区别
本文收录于go进阶系列,大家有兴趣的可以看一看相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看Java
并发编程系列
,设计模式系列、goweb开发框架系列正在发展中,
过去日记
·
2024-01-27 09:50
go进阶
golang
开发语言
Java集合相关面试题
本文收录于java面试题系列,大家有兴趣的可以看一看相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看Java
并发编程系列
,设计模式系列、goweb开发框架系列正在发展中
过去日记
·
2024-01-27 09:45
java面试题
java
开发语言
Java 集合List相关面试题
本文收录于java面试题系列,大家有兴趣的可以看一看相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看Java
并发编程系列
,设计模式系列、goweb开发框架系列正在发展中
过去日记
·
2024-01-25 16:41
java面试题
java
list
Java 集合Map相关面试题
本文收录于java面试题系列,大家有兴趣的可以看一看相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看Java
并发编程系列
,设计模式系列、goweb开发框架系列正在发展中
过去日记
·
2024-01-25 16:09
java面试题
java
开发语言
10.14-10.20周复盘
一、技术学习
并发编程系列
8节课,学了6节课,总结了前三节课学习。1、线程基础。线程的6种状态,启动退出的底层原理,查看虚拟机hotspot的源码。
海边的奔跑
·
2024-01-24 21:10
Nginx反向代理
本文收录于Nginx系列,大家有兴趣的可以看一看相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看Java
并发编程系列
,设计模式系列、goweb开发框架系列正在发展中
过去日记
·
2024-01-24 16:23
Nginx
nginx
运维
MySQL面试题
本文收录于java面试题系列,大家有兴趣的可以看一看相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看Java
并发编程系列
,设计模式系列、goweb开发框架系列正在发展中
过去日记
·
2024-01-24 16:22
java面试题
mysql
数据库
Java框架篇面试题
本文收录于java面试题系列,大家有兴趣的可以看一看相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看Java
并发编程系列
,设计模式系列、goweb开发框架系列正在发展中
过去日记
·
2024-01-24 16:50
java面试题
java
开发语言
Redis相关面试题大全
本文收录于java面试题系列,大家有兴趣的可以看一看相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看Java
并发编程系列
,设计模式系列、goweb开发框架系列正在发展中
过去日记
·
2024-01-23 01:28
java面试题
redis
spring
数据库
【
并发编程系列
10】阻塞队列之SynchronousQueue,LinkedTransferQueue原理分析
前言前面我们介绍了ArrayBlockingQueue,LinkedBlockingQueue,LinkedBlockingDeque和PriorityBlockingQueue,DelayQueue五种阻塞队列,这一次就继续介绍Java中提供的7种阻塞队列中的最后两种:SynchronousQueue和LinkedTransferQueue。双队列双队列是一个节点可以表示数据或者请求的队列。即一
刀哥说Java
·
2024-01-02 04:23
第十一章 ThreadLocal全面解析
JUC
并发编程系列
文章http://t.csdn.cn/UgzQi文章目录JUC
并发编程系列
文章前言一、ThreadLocal介绍二、基本使用1、常用方法2、使用案例3、ThreadLocal类与synchronized
无奈朝来寒雨晚来风
·
2023-12-28 09:43
JUC并发编程
java
jvm
开发语言
【
并发编程系列
4】JMM中happens-before规则和as-if-serial语义
先行发生原则(happens-before)我们知道,在Java内存模型中,如果要确保有序性可以靠volatile和synchronized来实现,但是如果所有的有序性都仅仅依靠这两个关键字来完成,那么有一些操作将会变得很繁琐,但是我们在编写Java代码的时候并没有感觉到这一点,这是因为Java语言中有一个“先行发生(happens-before)”的原则。那么happens-before到底是什
刀哥说Java
·
2023-12-25 18:57
java
并发编程系列
-volatile内存实现和原理
前面的博文说了java的内存模型,介绍了java内存模型的基础,此篇文章来说一下volatile关键字,这个在并发编程占有举足轻重地位的关键字。在java5.0之前它是一个备受争议的关键字,5之后它重获新生。volatile关键字的作用是保证多线程中变量的可见性,是JUC包中的核心。在内存模型基础中已经提到过,JVM是分为堆内存和栈内存的,堆内存在线程之间共享,而栈内存为线程内部私有,对其他线程不
起个名忒难
·
2023-12-25 14:39
深入理解AQS之ReentrantReadWriteLock详解
并发编程系列
读写锁介绍现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁(读多写少)。
lang20150928
·
2023-11-24 08:36
其他
基础
java
开发语言
后端
并发编程系列
学习笔记03(共享模型之管程)
共享模型之管程回顾故事:老王有一把算盘,租给其他人用使用;怎么样能租给更多人,得到更多的租金,而不能出现问题;共享模型代理的问题不同线程同时对同一共享变量进行操作,最终将导致结果出现无法预测根本原因为Java内存模型分主内存和工作内存加上线程在执行过程中可能出现上下文切换具体案例:两个不同线程对一个int共享变量同时做++与--;i++对应了JVM字节码如下:getstatici//获取静态变量i
法号轻尘
·
2023-11-23 10:18
#
网课笔记
多线程
java
并发编程
jvm
thread
java 银行并发_java并发编程——通过ReentrantLock,Condition实现银行存取款
Java
并发编程系列
文章java.util.concurrent.locks包为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。该框架允许更灵活地使用锁和条件,但以更难用的语法为代价。
材料搬砖狗
·
2023-11-15 23:57
java
银行并发
JUC
并发编程系列
(二):多线程并发、CAS、锁
前言在这篇文章中,荔枝将主要梳理在JUC并发学习中的有关Java多线程中有关共享变量的内存可见性、原子性问题、指令重排问题以及伪共享问题。希望能够对正在学习的小伙伴有帮助~~~文章目录前言一、多线程并发与内存可见性问题的引入1.1并发和并行1.2多线程并发的场景引入以及带来的问题1.3共享变量的内存可见性问题二、synchronized和volatile关键字2.1synchronized2.2v
荔枝当大佬
·
2023-11-13 14:20
JUC并发编程学习
java
CAS
多线程并发
伪共享
锁
并发编程系列
---2、线程和线程池
线程池在并发编程中使用很普遍,而且线程池的原理很比较容易懂,但是这个不管是面试还是工作中都还是很重要的。下面我们主要来具体讲一下线程池、线程这些知识,汇总下,大家看这一篇文章我认为就够用了。里面有各种面试会问的,看懂了,线程池这块就拿捏的死死的了。目录一、多线程二、线程池2.1、线程池目的2.2、线程池基本框架2.3、线程池状态2.4、线程池excute分析2.5、自定义线程池2.6、线程池核心线
Airbander
·
2023-11-08 20:36
并发编程深入原理的文章
多线程
java
面试
并发编程
Java
并发编程系列
07:多线程的实现方式:继承Thread类、实现Runnable接口或Callable接口
最近开始了解多线程,发现内容太多,那就一点一点来吧。先了解最基础的,多线程有几种实现方式?从网上了解到,多线程有3种实现方式。一、多线程的实现方式有1、继承Thread类、2、实现Runnable接口3、Callable接口来个小例子,具体实现如下:1、继承Thread类通过继承Thread类,并重写它的run方法,我们就可以创建一个线程。(线程创建后,使用start()方法才是启动一个新的线程,
fen_fen
·
2023-11-08 09:34
java相关
#
JAVA多线程编程
git
java
github
JUC
并发编程系列
(一):Java线程
前言JUC并发编程是Java程序猿必备的知识技能,只有深入理解并发过程中的一些原则、概念以及相应源码原理才能更好的理解软件开发的流程。在这篇文章中荔枝会梳理并发编程的基础,整理有关Java线程以及线程死锁的知识,希望能够帮助到有需要的小伙伴~~~文章目录前言一、基本概念1.1什么是线程1.2常见的三种创建线程的方式1.3共享变量的wait、notify、notifyAll1.4线程的join()、
荔枝当大佬
·
2023-11-06 10:11
JUC并发编程学习
java
线程
死锁
ThreadLocal
JUC
【Java
并发编程系列
6】同步工具类
主要讲解Java常用的同步工具类,包括闭锁/FutureTask/信号量/栅栏,最后还对“创建线程的三种方式”进行简单的扫盲。往期精选(欢迎转发~~)如何看待程序员35岁职业危机?Java全套学习资料(14W字),耗时半年整理我肝了三个月,为你写出了GO核心手册消息队列:从选型到原理,一文带你全部掌握肝了一个月的ETCD,从Raft原理到实践更多...前言《Java并发编程实战》这本书看到第五章了
楼仔
·
2023-11-02 13:20
Java并发编程
并发编程
并发编程系列
---【线程池七大核心参数】
一、七大核心参数1.corePoolSize核心线程数2.maximumPoolSize最大线程池参数3.keepAliveTime任务结束后,线程存活此处指定时间后才会被释放4.TimeUnit上一个参数的单位,常用s,ms5.BlockingQueue队列,当核心线程用完时,任务放进队列6.ThreadFactory线程工厂7.丢弃策略默认Abort,直接丢弃,并抛出异常二、线程池原理所有线程
少年攻城狮
·
2023-10-28 17:36
java
jvm
开发语言
面试官:谈谈ReentrantLock与synchronized的区别?
这篇文章是
并发编程系列
第9集,上一次并发系列第八集通过ReentrantLock独占锁,讲解了AQS的基本实现原理,这次第10集开个支线,讲讲面试经常会被问的基于AQS实现的ReentrantLock与
公众号:码海
·
2023-10-22 20:29
队列
java
多线程
面试
android
Python
并发编程系列
之协程
1引言协程是近几年并发编程的一个热门话题,与Python多进程、多线程相比,协程在很多方面优势明显。本文从协程的定义和意义出发,结合asyncio模块详细讲述协程的使用。2协程的意义2.1什么是协程协程,又称微线程,英文名为Coroutine。对于多线程,在执行一个个不同任务时,遇到阻塞(例如IO操作)时,操作系统会自动将CPU资源切换给另一个线程。但协程不同,协程是用户态的轻量级线程,更多的依靠
代码输入中...
·
2023-10-20 02:45
python
开发语言
numpy
深度学习
后端
Go
并发编程系列
(一) 多进程编程与进程同步之Pipe管道
本系列文章目录展开/收起Go
并发编程系列
(一)多进程编程与进程同步之Pipe管道Go
并发编程系列
(二)多进程编程与进程同步之Signal信号量Go
并发编程系列
(三)多进程编程与进程同步之Socket编程
张柏沛
·
2023-10-16 23:07
go并发编程系列
go语言
并发编程
java
并发编程系列
-内存模型基础
java线程之间的通信对程序开发人员是完全透明的,内存的可见性问题很容易困扰很多开发人员。本篇博文将揭开java内存模型的神秘面纱,来看看内存模型到底是怎样的。并发编程模型的分类并发编程中需要处理的两个关键问题:线程之间如何通信线程之间如何同步所谓通信是指线程之间以何种机制来交换信息,在命令式编程中,线程的通信机制有两种:共享内存(隐式通信:通过共享程序的公共状态,读-写内存中的公共状态实现)消息
起个名忒难
·
2023-10-11 14:32
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多线程入门9-线程通信和生产者消费者问题
更多的线程通信方法与这两个基本方法原理类似,并在JUC
并发编程系列
中介绍。 本系列第一篇中已经介绍到,线程是在进程中生成的,线程间的通信比进程间通信方便,开销也更小。
jinyangjie0
·
2023-10-11 03:07
多线程
java
开发语言
后端
多线程
并发编程之深入理解Java线程【图灵】
并发编程系列
课前思考问题:CAS涉及到用户模式到内核模式的切换吗?为什么说创建Java线程的方式本质上只有一种?Java线程和go语言的协程有什么区别?如何优雅的终止线程?
lang20150928
·
2023-10-09 11:44
基础
java
深入学习掌握JUC
并发编程系列
(五) -- 深入浅出无锁-乐观锁
深入学习掌握JUC
并发编程系列
(五)--深入浅出无锁-乐观锁一、CAS(原子性)与volatile(可见性)二、原子整数三、原子引用(Reference)四、原子数组(Array)五、字段更新器(Filed
snapepotter
·
2023-09-24 09:58
深入学习掌握JUC并发编程系列
学习
java
并发编程系列
-CAS
锁(lock)的代价锁是用来做并发最简单的方式,其代价也是最高的,Java在JDK1.5之前都是靠synchronized关键字来加锁。但是加锁机制会有如下几个问题:加锁、释放锁会需要操作系统进行上下文切换和调度延时,在上下文切换的时候,cpu之前缓存的指令和数据都将失效,这个过程将增加系统开销。多个线程同时竞争锁,锁竞争机制本身需要消耗系统资源。没有获取到锁的线程会被挂起直至获取锁,在线程被挂起
吾日三省吾码
·
2023-09-22 12:06
后端
并发编程系列
-分而治之思想Forkjoin
我们介绍过一些有关并发编程的工具和概念,包括线程池、Future、CompletableFuture和CompletionService。如果仔细观察,你会发现这些工具实际上是帮助我们从任务的角度来解决并发问题的,而不是让我们陷入线程之间如何协作的繁琐细节(比如等待和通知等)。对于简单的并行任务,你可以使用“线程池+Future”的方式来处理。而对于任务之间存在聚合关系的情况,无论是AND聚合还是
吾日三省吾码
·
2023-09-20 17:08
后端
并发编程系列
-CompletableFuture
利用多线程来提升性能,实质上是将顺序执行的操作转化为并行执行。仔细观察后,你还会发现在顺序转并行的过程中,一定会牵扯到异步化。举个例子,现在下面这段示例代码是按顺序执行的,为了优化性能,我们需要将其改为并行执行。那具体的实施方法是什么呢?//以下两个方法都是耗时操作doBizA();doBizB();确实,实现并行化的方法很简单,就像下面的代码一样,我们创建两个子线程来执行这些操作。你会发现在下面
吾日三省吾码
·
2023-09-19 19:09
后端
java并发编程 SynchronousQueue详解
3.1.1TransferStack实现3.1.2TransferQueue实现3.2外部方法3.2.1put(Ee)3.2.2offer(Ee)3.2.3take()3.2.4poll()4总结java
并发编程系列
文章目录
java爬坑中
·
2023-09-12 10:18
java并发编程
java
开发语言
java并发编程 CountDownLatch详解
文章目录1CountDownLatch是什么2核心属性详解3核心方法详解3.1countDown()3.2await()4总结java
并发编程系列
文章目录1CountDownLatch是什么java这个类上已经写了
java爬坑中
·
2023-09-12 10:44
java并发编程
java
开发语言
java并发编程 AbstractQueuedSynchronizer(AQS)详解二
java
并发编程系列
文章目录2ConditionObject结构是一个双向
java爬坑中
·
2023-09-03 14:18
java并发编程
java
并发编程系列
-Semaphore
Semaphore,如今通常被翻译为"信号量",过去也曾被翻译为"信号灯",因为类似于现实生活中的红绿灯,车辆是否能通行取决于是否是绿灯。同样,在编程世界中,线程是否能执行取决于信号量是否允许。信号量是由著名的计算机科学家迪杰斯特拉(Dijkstra)于1965年提出的,直到1980年管程被提出,它一直是并发编程领域的主导方法。如今几乎所有支持并发编程的语言都支持信号量机制,因此掌握信号量仍然非常
满载星辉
·
2023-08-17 20:15
后端
并发编程系列
-CompletableFuture
利用多线程来提升性能,实质上是将顺序执行的操作转化为并行执行。仔细观察后,你还会发现在顺序转并行的过程中,一定会牵扯到异步化。举个例子,现在下面这段示例代码是按顺序执行的,为了优化性能,我们需要将其改为并行执行。那具体的实施方法是什么呢?//以下两个方法都是耗时操作doBizA();doBizB();确实,实现并行化的方法很简单,就像下面的代码一样,我们创建两个子线程来执行这些操作。你会发现在下面
满载星辉
·
2023-08-17 20:15
后端
并发编程系列
-分而治之思想Forkjoin
我们介绍过一些有关并发编程的工具和概念,包括线程池、Future、CompletableFuture和CompletionService。如果仔细观察,你会发现这些工具实际上是帮助我们从任务的角度来解决并发问题的,而不是让我们陷入线程之间如何协作的繁琐细节(比如等待和通知等)。对于简单的并行任务,你可以使用“线程池+Future”的方式来处理。而对于任务之间存在聚合关系的情况,无论是AND聚合还是
满载星辉
·
2023-08-17 20:44
后端
高
并发编程系列
:并发容器的原理,7大并发容器详解、及使用场景
并发容器的由来在Java并发编程中,经常听到Java集合类,同步容器、并发容器,那么他们有哪些具体分类,以及各自之间的区别和优劣呢?只有把这些梳理清楚了,你才能真正掌握在高并发的环境下,正确使用好并发容器,我们先从Java集合类,同步容器谈起。并发容器详细介绍1.什么是同步容器Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map,大家熟知的这些集合类ArrayList、L
晴栀吖
·
2023-08-17 06:03
转载】Java
并发编程系列
04 | Java内存模型详解
文章见:【原创】Java
并发编程系列
03|重排序-可见性和有序性问题根源那么,作为从最开始就支持并发的语言,Java是如何解决这些核心问题的呢?
大锤强无敌
·
2023-08-16 03:38
【
并发编程系列
8】阻塞队列之ArrayBlockingQueue,LinkedBlockingQueue,LinkedBlockingDeque原理分析
什么是阻塞队列阻塞队列有两个特点:当队列中没有元素时,从队列中获取元素会被阻塞当队列满了时,添加元素会被阻塞阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素,消费者则从队列里取元素。队列Queue接口核心方法阻塞队列,本质上来说还是属于队列,也就是说阻塞队列继承了队列的功能,这里我们先来看看Queue接口中的几个核心方法:方法功能add(e)添加一个元素,成功返回true,如果空间满了
刀哥说Java
·
2023-08-13 18:54
【
并发编程系列
11】Java中12个原子(Atomic)操作类实现原理分析
前言我们知道i++操作实际上是线程不安全的,因为一个i++操作分为了三步:1、获取的i的值2、执行i+13、将i+1的结果赋值给i而这三步不是一个原子操作,多线程环境下就会出现线程不安全性问题。Java从JDK1.5开始,在java.util.concurrent.atomic包下提供了12个对应的原子类操作,让我们可以直接使用原子操作类来实现一个原子的i++操作。Java中一共提供了12个原子类
刀哥说Java
·
2023-07-29 23:29
干货:Java
并发编程系列
之volatile(一)
Java语言规范第三版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。了解volatile关键字之前需要先了解下Java内存模型,java内存模型抽象示意图如下:Java内存模型线程A和线程B之间若要通信的话,必须经历下面两个步骤(1)线程A和线程A本地内存中更新过的共享变量刷新到主存中去。(2)线
程序员技术圈
·
2023-07-18 05:08
Java
并发编程系列
(一)-Synchronized和ReentrantLock爱恨纠葛
Java提供了两种锁机制来控制多个线程对共享资源的互斥访问Synchronized:同步关键字,属于Jvm内置关键字,由虚拟机控制ReentrantLock:可重入锁,JDK实现,由开发人员控制Synchronized关键字当多个线程对同一资源进行访问时,可以通过Synchronized关键字去进行加锁,以防止线程安全问题。JVM将加锁的技术包装成关键字,降低门槛,非常容易使用。Synchroni
喜马拉雅强
·
2023-06-20 12:23
java
java
jvm
开发语言
并发编程系列
之如何正确使用线程池?
并发编程系列
博客原文链接
并发编程系列
之如何正确使用线程池?在上一章节的学习中,我们掌握了线程的基本知识,接着本博客会继续学习多线程中的线程池知识1、线程是不是越多越好?
smileNicky
·
2023-06-17 00:53
☕【Java深层系列】「
并发编程系列
」让我们一起探索一下CompletionService的技术原理和使用指南
CompletionService基本介绍CompletionService与ExecutorService类似都可以用来执行线程池的任务,ExecutorService继承了Executor接口,而CompletionService则是一个接口。主要是Executor的特性决定的,Executor框架不能完全保证任务执行的异步性,那就是如果需要实现任务(task)的异步性,只要为每个task创建
洛神灬殇
·
2023-06-13 05:18
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他