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
【并发编程系列】
并发编程系列
之什么是ForkJoin框架?
并发编程系列
之什么是ForkJoin框架?
smileNicky
·
2023-06-12 07:57
Java
并发编程系列
-AbstractQueuedSynchronizer
原创文章,转载请标注出处:《Java
并发编程系列
-AbstractQueuedSynchronizer》一、概述AbstractQueuedSynchronizer简称为AQS,是并发包中用于实现并发工具的基础类
唯一浩哥
·
2023-06-11 09:37
视频教程-Java
并发编程系列
-AQS源码解析-Java
Java
并发编程系列
-AQS源码解析鲁班学院—子路老师曾就职于谷歌、天猫电商等多家互联网公司,历任java架构师、研发经理等职位,参与并主导千万级并发电商网站与后端供应链研发体系搭建,多次参与电商大促活动技术保障
weixin_33384853
·
2023-04-21 03:53
[ 高并发]Java高
并发编程系列
第二篇--线程同步
并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求,而且也能怎么你在整个项目中的一个处理逻辑的能力体现.那么,你真的知道什么是高并发吗?这不是一个很简单的话题.高并发,往往会牵扯到很多的问题,如何才能快速响应,如何处理各个线程之间的交互,如何完成逻辑之间
lmrylll
·
2023-04-19 20:45
java
开发语言
[高并发]Java高
并发编程系列
开山篇--线程实现
Java是最早开始有并发的语言之一,再过去传统多任务的模式下,人们发现很难解决一些更为复杂的问题,这个时候我们就有了并发.引用多线程比多任务更加有挑战。多线程是在同一个程序内部并行执行,因此会对相同的内存空间进行并发读写操作。这可能是在单线程程序中从来不会遇到的问题。其中的一些错误也未必会在单CPU机器上出现,因为两个线程从来不会得到真正的并行执行。然而,更现代的计算机伴随着多核CPU的出现,也就
lmrylll
·
2023-04-19 19:07
java
jvm
开发语言
JUC
并发编程系列
详解篇一(基础)
同步和异步同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而异步方法通常会在另外一个线程中“真实”地执行。整个过程,不会阻碍调用者的工作。如图所示:图中显示了同步方法调用和异步方法调用的区别。对于调用者来说,异步调用似乎是一瞬间就完成的。如果异步调用需
淡墨@~无痕
·
2023-04-12 08:13
java基础
Java高级特性
并发编程
java
Java
并发编程系列
18:多线程之生产者和消费者模式_信号灯法(wait/notify通知机制)
1、生产者消费者模式生产者消费者问题(Producer-consumerproblem),也称为有限缓冲问题(Bounded-bufferproblem),是一个多线程同步问题的经典案例。该问题描述了两个共享大小缓冲区的线程---既所谓的“生产者”和“消费者”----在实际运行时会发生的问题。生产者的主要作用时生成一定量的数据放到缓冲区中,然后重复此过程。以此同时,消费者也在缓冲区消费这些数据。该
fen_fen
·
2023-04-08 16:55
java相关
#
JAVA多线程编程
java
开发语言
后端
并发编程系列
-Java 线程池总结
文章目录自定义线程池源码解析重要属性线程池状态工作线程数线程工厂阻塞队列拒绝策略执行流程使用工厂类创建线程池为什么要用线程池?线程的创建和销毁是有代价的。如果请求的到达率非常高且请求的处理过程是轻量级的,那么为每个请求创建一个新线程将消耗大量的计算资源。活跃的线程会消耗系统资源,尤其是内存。大量空闲线程会占用许多内存,给垃圾回收器带来压力,而且大量线程竞争CPU资源还会产生其它的性能开销。可创建线
Hodia、
·
2023-04-08 09:00
Java
队列
多线程
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
并发编程系列
(十)AQS同步器独占锁加锁与解锁-源码解读
目录1.AbstractOwnableSynchronizer源码分析2.AQS同步器下的Node源码:3.AbstractQueuedSynchronizer独占锁4.1.1AQS独占锁加锁的过程4.1.2acquire()方法:4.1.3tryAcquire()方法4.1.4addWaiter()方法4.1.5enq()方法自旋方式使node进入队尾4.1.6acquireQueued()方法
程序员劝退师丶
·
2023-04-03 08:48
线程
AQS
并发编程系列
——6线程池核心原理分析
学习目标线程池的作用jdk给我们提供了哪几种常用线程池线程池有哪几大核心参数线程池的拒绝策略有哪些线程中阻塞队列的作用线程池的工作流程线程池的设计思维线程池中的阻塞队列如果用默认的,会有哪些问题线程池的工作状态有哪些线程池中核心线程数量大小怎么设置?第1章线程池简介1.1线程的问题线程执行完run发放自动被销毁了,且任务与线程绑定在了一起,所以当任务多的时候,会频繁的创建和销毁线程,这给我们CPU
Eclipse_2019
·
2023-03-29 17:02
并发编程
java
jvm
开发语言
并发编程系列
——4Reentrantlock核心原理分析
学习目标锁的类别有哪些reentrantlock与synchronized的区别设计一把锁要考虑啥如何使用reentrantlockreentrantlock的lock流程reentrantlock的unlock流程AQS的理解第1章锁分类1、乐观锁和悲观锁乐观锁:采用乐观的思想处理数据,在每次读取数据时都认为别人不会修改该数据,所以不会上锁,但在更新时会判断在此期间别人有没有更新该数据,通常采用
Eclipse_2019
·
2023-03-29 17:31
并发编程
java
jvm
开发语言
并发编程系列
——5HashMap核心原理分析
学习目标hash冲突的解决办法有哪几种HashTable、hashmap、CHM三者之间的区别HashMap的默认长度是多少?默认扩容因子是多少?HashMap它是怎么解决hash冲突的HashMap为什么扩容是2的幂次方谈一下HashMap中put是如何实现的?谈一下hashMap中什么时候需要进行扩容,扩容resize()又是如何实现的?谈一下hashMap中get是如何实现的?为什么是16?
Eclipse_2019
·
2023-03-29 17:31
并发编程
java
哈希算法
缓存
链表
并发编程系列
之掌握LockSupport的用法
并发编程系列
之掌握LockSupport的用法1、什么是LockSupport?
smileNicky
·
2023-03-19 21:06
【
并发编程系列
3】volatile内存屏障及实现原理分析(JMM和MESI)
初识volatileJava语言规范第3版中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。这个概念听起来有些抽象,我们先看下面一个示例:packagecom.zwx.concurrent;publicclassVolatileDemo{publicstaticbooleanfinishFlag=fa
刀哥说Java
·
2023-03-11 20:34
并发编程 · 基础篇(中) · 三大分析法分析 Handler
小木箱成长营
并发编程系列
教程(排期中):并发编程·基础篇(上)·android线程那些事并发编程·基础篇(下)·android线程池那些事并发编程·提高篇(上)·Java并发关键字那些事并发编程·提高篇
·
2023-02-07 10:16
后端
并发编程终章:Java
并发编程系列
总纲
并发编程目录磕磕绊绊近半年时间,在工作之余,前后一共写了十余篇深入Java
并发编程系列
的文章,由于内容颇多,所以在这里列一个目录方便诸位翻阅。
竹子爱熊猫
·
2023-02-06 02:15
【原创】Java
并发编程系列
1:大纲
【原创】Java
并发编程系列
1:大纲一个人能力当中所蕴藏的潜能,远超过自己想象以外。
Dali王
·
2023-02-05 11:29
并发编程 · 基础篇 · android线程那些事
小木箱成长营
并发编程系列
教程(排期中):并发编程·基础篇(下)·android线程池那些事并发编程·提高篇(上)·Java并发关键字那些事并发编程·提高篇(下)·Java锁安全性那些事并发编程·高级篇(
小木箱
·
2023-02-04 14:08
后端
并发编程系列
之什么是Java内存模型?
并发编程系列
之变量可见性问题探究1、什么是并发中的变量可见性问题以例子的形式看看,定义一个变量,先用static修饰,在主线程修改之后,看看在新开的子线程里能被看到?
smileNicky
·
2023-02-04 12:04
并发编程 · 基础篇 · android线程那些事
小木箱成长营
并发编程系列
教程(排期中):并发编程·基础篇(下)·android线程池那些事并发编程·提高篇(上)·Java并发关键字那些事并发编程·提高篇(下)·Java锁安全性那些事并发编程·高级篇(
·
2023-02-03 21:43
后端
拾人牙慧系列--Synchronized的理解
前言本系列文章,将在各路大神文章的基础上,总结提炼出自己的感悟,力求将大神的观点总结的更加凝练,希望站在巨人的肩膀上,能看得更远本篇引用文章Java
并发编程系列
文章(这个是第一篇,里面有其余相关的文章)
小斌_bingor
·
2023-02-01 22:19
Go
并发编程系列
(五) go并发机制之MPG模型
本系列文章目录展开/收起Go
并发编程系列
(一)多进程编程与进程同步之Pipe管道Go
并发编程系列
(二)多进程编程与进程同步之Signal信号量Go
并发编程系列
(三)多进程编程与进程同步之Socket编程
张柏沛
·
2022-12-26 09:50
go语言
并发编程
源码剖析sync.WaitGroup(文末思考题你能解释一下吗?)
前言哈喽,大家好,我是asong,这是我
并发编程系列
的第三篇文章,上一篇我们一起分析了sync.once的使用与实现,今天我们一起来看一看sync.WaitGroup的使用与实现.快过年了,这是年前最后一篇推文了
Sunshine-松
·
2022-12-10 07:38
指针
java
编程语言
go
并发编程
Java
并发编程系列
持续更新
Java并发编程-线程实现的方式Java并发编程-线程状态Java并发编程-线程属性和方法Java并发编程-线程安全Java并发编程synchronizedJava并发编程ThreadLocalJava并发编程lock和ReentrantLockJava并发编程ReadWriteLockJava并发编程原子操作atomicJava并发编程安全集合
不看白不看,看了不白看
·
2022-10-12 20:54
并发编程
java
java
蓝桥杯
开发语言
JUC
并发编程系列
详解篇十六(java中的其他锁)
更多请查看这篇文章:JUC
并发编程系列
详解篇十一(synchronized底层的锁)可
淡墨@~无痕
·
2022-09-13 13:03
java基础
Java高级特性
并发编程
java
jvm
JUC
并发编程系列
详解篇六(死锁的基本概念)
什么是死锁?两个线程或两个以上线程都在等待对方执行完毕才能继续往下执行的时候就发生了死锁。结果就是这些线程都陷入了无限的等待中。例如,如果线程1锁住了A,然后尝试对B进行加锁,同时线程2已经锁住了B,接着尝试对A进行加锁,这时死锁就发生了。线程1永远得不到B,线程2也永远得不到A,并且它们永远也不会知道发生了这样的事情。为了得到彼此的对象(A和B),它们将永远阻塞下去。这种情况就是一个死锁。pub
淡墨@~无痕
·
2022-09-13 13:02
java基础
Java高级特性
并发编程
java
开发语言
并发编程系列
之Lock锁可重入性与公平性
优质资源分享学习路线指引(点击解锁)知识定位人群定位Python实战微信订餐小程序进阶级本课程是pythonflask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。Python量化交易实战入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统一、相似之处:Lock锁vsSynchronized代码块Lock锁是一种类似于synchronized同步代码块的线程同
xuhss_com
·
2022-05-14 20:10
计算机
计算机
并发编程系列
之Lock锁可重入性与公平性
一、相似之处:Lock锁vsSynchronized代码块Lock锁是一种类似于synchronized同步代码块的线程同步机制。从Java5开始java.util.concurrent.locks引入了若干个Lock锁的实现类,所以通常情况下我们不需要实现自己的锁,重要的是需要知道如何使用它们,了解它们实现背后的原理。Lock锁API的基本使用方法和Synchronized关键字大同小异,代码如
·
2022-05-13 08:18
java
并发编程系列
之Lock锁可重入性与公平性
一、相似之处:Lock锁vsSynchronized代码块Lock锁是一种类似于synchronized同步代码块的线程同步机制。从Java5开始java.util.concurrent.locks引入了若干个Lock锁的实现类,所以通常情况下我们不需要实现自己的锁,重要的是需要知道如何
字母哥博客
·
2022-05-13 08:00
Java
并发编程系列
之三JUC概述
上篇文章为解决多线程中出现的同步问题引入了锁的概念,上篇文章介绍的是Synchronized关键字锁,本篇文章介绍更加轻量级的锁Lock接口及引出JUC的相关知识。本文不力争阐释清楚JUC框架的所有内容,而是站在一定的高度下,了解Juc下包的设计与实现。[TOC]一、LOCK锁概述实现同步的另外一种方式是Lock锁。Lock锁是一个接口,其所有的实现类为:ReentrantLock(可重入锁)Re
·
2022-04-15 16:06
Java
并发编程系列
之二线程基础
并发编程系列
之一并发理论基础本篇文章重点在于Java中怎么去使用多线程,和多线程的一些相关概念和操作,及怎么优化多线程。在Java中每个对象都有其生命周期
·
2022-04-07 16:51
后端java多线程
Java
并发编程系列
之一并发理论基础
Java
并发编程系列
之一并发理论基础本系列文章开始Java并发编程的进阶篇的学习,为了初学者对多线程的初步使用有基本概念和掌握,前置知识会对一些基础篇的内容进行介绍,以使初学者能够丝滑入戏。
·
2022-03-30 15:54
java多线程并发编程
Python多线程
最近在学习并发编程,打算写一个
并发编程系列
的文章。之前也看过很多Python多线程多进程的教程、博客等,但收益不大。
_kkk
·
2022-02-17 14:47
go并发编程总结
本文绝大部分内容是从go
并发编程系列
文章学习总结而来。上下文Context上下文context.Context是用来设置截止日期、同步信号,传递请求相关值的结构体。
彦帧
·
2022-02-15 07:20
Java
并发编程系列
--- 线程池(ThreadPoolExecutor)源码解析
在开始解析线程池之前,先简单的总结一下创建线程的几种方式:继承Thread类实现Runnable接口使用Future和Callable借助线程池上面是创建一个线程的四种方式,在实际的开发中是推荐使用线程池来实现多线程的并发操作。ThreadPoolExecutor是线程池的核心实现类,用来执行被提交的任务。在开始分析之前,先看一下线程池的主要处理流程,如下图:image.png上图是线程池的处理流
起个名忒难
·
2022-02-10 15:31
并发编程之深入理解JMM&并发三大特性 (图灵课堂)
并发编程系列
JMM属于整个Java并发编程中最难的部分也是最重要的部分(JAVA多线程通信模型——共享内存模型),涉及的理论知识比较多,从三个维度去分析:JAVA层面JVM层面硬件层面这块如何学?
lang20150928
·
2022-02-04 16:38
基础
apache
java
开发语言
并发编程系列
之掌握原子类使用
并发编程系列
之掌握原子类使用学习目标:知道什么是原子类和用途掌握juc中原子类使用了解原子类的实现原理1、什么是原子类?原子类是jdk的juc包中提供的对单个变量进行无锁、线程安全修改的工具类。
smileNicky
·
2021-12-04 20:49
并发编程
java
开发语言
后端
Java
并发编程系列
之LockSupport的用法
目录1、什么是LockSupport?2、两类基本API3、LockSupport本质4、LockSupport例子5、LockSupport源码总结1、什么是LockSupport?LockSupport是用于创建锁和其他同步类的基本线程阻塞原语2、两类基本APILockSupport提供了两类最基本的API:block线程类:一般都是以pack开头的方法名,pack*(...)pack方法有两
·
2021-11-22 17:18
并发编程终章:Java
并发编程系列
总纲
并发编程目录磕磕绊绊近半年时间,在工作之余,前后一共写了十三篇深入Java
并发编程系列
的文章,由于内容颇多,所以在这里列一个目录方便诸位翻阅。
竹子爱熊猫
·
2021-11-07 00:00
多线程
高并发编程
后端
Java
并发编程系列
(二) 锁之 LockSupport 工具 、Condition接口
LockSupport工具类Condition与Object对比(来自Java并发编程的艺术一书)Condition提供了一系列的方法Condition方法await():造成当前线程在接到信号或被中断之前一直处于等待状态。await(longtime,TimeUnitunit):造成当前线程在接到信号、被中断或到达指定等待时间之前一直处于等待状态。awaitNanos(longnanosTime
Gxgeek
·
2021-06-15 09:36
JDK
并发编程系列
一:线程间的等待关系
CountDownLatch内部维护一个计数器,用来控制一个线程等待多个线程。调用await()方法会阻塞,直到count=0,调用countDown()方法即count-1示例:publicclassCountDownLatchDemo{publicstaticvoidmain(String[]args)throwsInterruptedException{//声明一个计数器为5的CountDo
一千零一梦
·
2021-06-14 08:54
java
并发编程系列
之原理篇-synchronized与锁
#前言Java中的锁都是`基于对象的锁,Java中的每一个对象都可以作为一个锁`,我们常听到**类锁**其实也是对象锁,因为Java类只有一个class对象(一个Java类可以有多个实例对象,多个实例对象共享这一个Java类)。之所以有锁的概念,都是因为在多个线程在访问一个共享变量资源时会发生一些不可控制的问题。所以,锁控制的就是共享资源对象。#锁的分类Java6为了减少获得锁和释放锁带来的性能消
乘风破浪的小哥哥
·
2021-05-07 09:16
『图解Java
并发编程系列
』10张图告诉你Java并发多线程那些破事
目录线程安全问题活跃性问题性能问题有态度的总结头发很多的程序员:『师父,这个批量处理接口太慢了,有什么办法可以优化?』架构师:『试试使用多线程优化』第二天头发很多的程序员:『师父,我已经使用了多线程,为什么接口还变慢了?』架构师:『去给我买杯咖啡,我写篇文章告诉你』……吭哧吭哧买咖啡去了在实际工作中,错误使用多线程非但不能提高效率还可能使程序崩溃。以在路上开车为例:在一个单向行驶的道路上,每辆汽车
爱笑的架构师
·
2021-04-28 21:55
Java高级特性
Java并发编程
JUC
java
多线程
并发编程
趣谈ReentrantLock,看完直呼通俗易懂
前言自己开的坑,跪着也要填完,欢迎来到Java
并发编程系列
第五篇ReentrantLock,文章风格依然是图文并茂,通俗易懂,本文带读者们深入理解ReentrantLock设计思想。
程序猿阿星
·
2021-04-22 14:28
Java基础
java多线程
ReentrantLock
Java多线程
AQS
Java锁
Java并发编程
【
并发编程系列
7】CountDownLatch,CyclicBarrier,Semaphore实现原理分析
CountDownLatchCountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完毕再执行。CountDownLatch使用示例packagecom.zwx.concurrent.jucUtil;importjava.util.concurrent.CountDownLatch;publicclassCountDownLatchDemo{publics
刀哥说Java
·
2021-04-19 08:58
【
并发编程系列
5】JUC必知ReentrantLock和AQS同步队列实现原理分析
给读者的小惊喜:戳我前言锁是一种用来控制多线程访问共享资源的工具。通常,锁可以独占共享资源:同一时间只有一个线程可以获得锁,并且所有访问共享资源的线程都必须首先获得锁。前面我们介绍过了synchronized,使用synchronized的方法和代码块作用域机制使得使用监视器锁更加简单,并且帮助避免了许多关于锁的常见编程错误,比如锁未及时释放等问题。但是有时候我们需要更灵活的使用锁资源,例如,一些
刀哥说Java
·
2021-04-18 17:47
【
并发编程系列
2】synchronized锁升级原理分析(偏向锁-轻量级锁-重量级锁)
初识synchronized在并发编程中,synchronized对我们来说并不陌生,我们都知道,当多个线程并行的情况下,程序是不安全的,这个不安全主要发生在共享变量的不安全,我们通过一个例子来说明:packagecom.zwx.concurrent;publicclassTestSynchronized{privatestaticintcount;publicstaticvoidincremen
刀哥说Java
·
2021-04-18 04:56
Java
并发编程系列
之CountDownLatch用法及详解
背景前几天一个同事问我,对这个CountDownLatch有没有了解想问一些问题,当时我一脸懵逼,不知道如何回答。今天赶紧抽空好好补补。不得不说DougLea大师真的很牛,设计出如此好的类。1、回顾旧知识volatile关键字:当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。(这涉及到java内存模型了,有兴趣了解java内
境里婆娑
·
2021-04-17 18:10
上一页
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
其他