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并发
——公平锁,非公平锁,悲观锁,乐观锁,死锁
个人博客:haichenyi.com。感谢关注前言 这几个锁都可以从前面一篇线程同步器AQS里面找到影子,我先把前面一篇的加锁流程图拿过来用一用。加锁流程图.png 上面这个流程图是上一篇最开始讲的时候的一张流程图,后面写的时候,后面的流程图都没有画。这一片我们来画一下后面的流程图。公平锁,非公平锁 前面一篇讲的时候,我说过了,我们当时做的是一个公平锁。这个公平锁和非公平锁的主要区别就是在这
海晨忆
·
2021-11-20 14:41
Java并发
编程——线程池详解
背景在执行一个异步任务或并发任务时,往往是通过直接newThread()方法来创建新的线程,这样做弊端较多。经常创建和销毁线程,对性能的影响很大(上下文切换)更好的解决方案是合理地利用线程池,线程池的优势很明显,如下:降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;提高系统响应速度,当有任务到达时,无需等待新线程的创建便能立即执行;方便线程并发数的管控,线程若是无限制的创建,
憨憨龟.
·
2021-11-14 22:25
并发编程
java
后端
并发编程
Java并发
编程——ConcurrentHashMap详解
引出场景:针对用户来做一个访问次数的记录。通过HashMap进行记录,key为用户名,value为访问次数。publicclassConcurrentHashMapDemo{privatestaticfinalHashMapUSER_ACCESS_COUNT=newHashMapUSER_ACCESS_COUNT=newConcurrentHashMap1);System.out.println(
憨憨龟.
·
2021-11-14 15:44
并发编程
java
后端
并发编程
java并发
请求下数据插入重复问题的解决方法
目录前言分布式锁工具类在过滤器实现请求拦截总结前言前段时间发现数据库里经常会存在两条相同的用户数据,导致数据查询异常。查了原因,发现前端微信小程序在授权登录时,有时会出现同时发送了两条一模一样的请求(也就是常说的并发)。虽然后端代码有做防重复的判断,但是避免不了并发时候的重复性操作。于是就开始考虑并发的解决方案,解决方案有很多,从拦截请求到数据库层面都可以入手。我们采用了对请求报文生成摘要信息+R
·
2021-11-12 16:32
Java并发
之搞懂读写锁
目录ReentrantReadWriteLock小结StampedLock小结总结ReentrantReadWriteLock我们来探讨一下java.concurrent.util包下的另一个锁,叫做ReentrantReadWriteLock,也叫读写锁。实际项目中常常有这样一种场景:比如有一个共享资源叫做SomeData,多个线程去操作SomeData,这个操作有读操作也有写操作,并且是读多写
·
2021-11-10 11:44
【JDK源码】并发原子类AtomicStampedReference
文章目录简介ABA内部类构造方法compareAndSet()方法案例总结简介AtomicStampedReference是
java并发
包下提供的一个原子类,它能解决其它原子类无法解决的ABA问题,比如
早上真起不来!
·
2021-11-10 11:20
JDK
JUC
java
开发语言
后端
【JDK源码】并发原子类AtomicInteger
文章目录简介原子操作主要属性compareAndSet()方法getAndIncrement()方法总结扩展简介AtomicInteger是
java并发
包下面提供的原子类,主要操作的是int类型的整型,
早上真起不来!
·
2021-11-09 11:57
JDK
JUC
java
源码
Executors 源码解析(JDK8)
前言本文隶属于专栏《100个问题搞定
Java并发
》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
Shockang
·
2021-11-08 22:27
Java并发
java
并发
线程池
如何对请求进行限流?
前言本文加粗样式隶属于专栏《100个问题搞定
Java并发
》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
Shockang
·
2021-11-08 21:58
Java并发
java
并发
并发编程终章:
Java并发
编程系列总纲
并发编程目录磕磕绊绊近半年时间,在工作之余,前后一共写了十三篇深入
Java并发
编程系列的文章,由于内容颇多,所以在这里列一个目录方便诸位翻阅。
竹子爱熊猫
·
2021-11-07 00:00
多线程
高并发编程
后端
ThreadLocal使用以及面试题解析
简述:在
Java并发
中,如果对于某些对象并不需要做共享操作,而是希望每个线程把对应的对象复制一份到线程内,加上线程天然的隔离性,这样可以完美的避免多个线程抢夺操作同一个对象从而报错。
小驴小驴
·
2021-11-06 18:07
java并发
编程之原子性、可见性、有序性
目录1原子性1.1java中的原子性操作2可见性2.1可见性问题2.2解决可见性问题3有序性3.1单个线程内程序的指令重排序3.2多线程内程序的指令重排序3.3保证有序性的解决方法3.4volatile保证有序性的原理4实例分析4.1原理分析4.2synchronized结合4.3Lock结合4.4使用AtomicInteger替换int在java中,执行下面这个语句inti=12;执行线程必须先
·
2021-11-05 17:48
阿里绝密文档:亿级并发系统设计 +并发编程图册(全彩版)
今天给大家分享的就号称由阿里大佬总结出来的两份关于
Java并发
+亿级流量架构的全彩版手册,下面会给大家展示一下其中的部分内容!百亿级并发系统设计因为篇幅原因所以就不给大家展示过多的内容了,需要获取的
横扫bug
·
2021-11-04 11:46
java
开发语言
后端
Java并发
编程之内存模型
目录一、Java内存模型的基础1.1并发编程模型的两个关键问题1.2Java内存模型的抽象结构1.3从源代码到指令重排序1.4写缓冲区和内存屏障1.4.1写缓冲区1.4.2内存屏障1.5happens-before简介简介:Java线程之间的通信对程序员完全透明,内存可见性问题很容易困扰Java程序员,这一系列几篇文章将揭开Java内存模型的神秘面纱。这一系列的文章大致分4个部分,分别是:Java
·
2021-11-04 10:56
95后架构师晒出工资单:狠补了这个,真香...
这份资料内容涵盖极广,包含了22个技术栈、内容涵盖互联网公司面试常问的一些问题:Java相关(基础&进阶篇、字符串&集合面试题汇总)
Java并发
编程JVM面试题数据结构与算法网络协议面试题数据库M
CSDN云计算
·
2021-11-03 18:15
算法
java
面试
编程语言
数据库
R-JUC(
java并发
包)入门文档 2021年10月13日 至 2021年11月01日
java内力内力篇总纲JDK1.8官网在线文档,学习跟着看目录1、何为JUC2、Lock锁(接口)3、生产者和消费者4、线程八锁(八个问题,四组)5、集合类(安全与不安全)6、Callable7、CountDownLatch、CyclicBarrier、Semaphore8、读写锁(ReadWriteLock)9、阻塞队列(FIFO先进先出)10、线程池()11、四大函数式接口12、Stream流
鄙人_阿K
·
2021-11-02 09:05
并发
编程学习笔记
二 park/unpark
并发
编程学习笔记
二park/unpark原理java线程状态之间的相互转换死锁活锁饥饿ReentrantLock可重入锁JMMvolatile的原理乐观锁CAS享元模式线程池park/unpark原理每个线程都有自己的一个
Ghost1590
·
2021-10-30 20:16
java
java
开发语言
后端
你一定不知道的Unsafe用法
其实JUC包里面的类大部分都用到了Unsafe,可以说Unasfe是
java并发
包的基石。如何正确地获取Uns
接地气程序员
·
2021-10-29 17:00
Java并发
编程之Volatile变量详解分析
目录一、volatile变量的特性1.1、保证可见性,不保证原子性1.2、禁止指令重排二、内存屏障三、happens-beforeVolatile关键字是Java提供的一种轻量级的同步机制。Java语言包含两种内在的同步机制:同步块(或方法)和volatile变量,相比synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调
·
2021-10-29 12:25
Java并发
编程面试之线程池
目录什么是线程池线程池好处线程池的执行流程怎么用线程池corePoolSizemaximumPoolSizekeepAliveTimeunitworkQueuethreadFactoryejectedExecutionHandler线程池参数如何设置?监控线程池总结什么是线程池是一种基于池化思想管理线程的工具。池化技术:池化技术简单点来说,就是提前保存大量的资源,以备不时之需。比如我们的对象池,数
·
2021-10-29 10:13
Java并发
编程之死锁相关知识整理
目录一、什么是死锁二、死锁产生的条件三、死锁产生的演示四、死锁的预防五、死锁的避免一、什么是死锁所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进二、死锁产生的条件以下将介绍死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁互斥条件进程要求对所分配的资源(如打印机〉进行排他性控制,即在一段时间内某资源仅为一个
·
2021-10-29 10:12
Java并发
编程加锁导致的活跃性问题详解方案
目录死锁(Deadlock)死锁的解决和预防1.超时释放锁2.按顺序加锁3.死锁检测活锁(Livelock)避免活锁饥饿解决饥饿性能问题上下文切换什么是上下文切换?减少上下文切换的方法资源限制什么是资源限制资源限制引发的问题如何解决资源限制的问题我们主要处理锁带来的问题.首先就是最出名的死锁死锁(Deadlock)什么是死锁死锁是当线程进入无限期等待状态时发生的情况,因为所请求的锁被另一个线程持有
·
2021-10-29 10:36
Java 并发“锁“的本质(一步步实现锁)
地中断线程-实践篇Java“优雅”地中断线程-原理篇真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
小鱼人爱编程
·
2021-10-28 13:39
Java Semaphore/CountDownLatch/CyclicBarrier 深入解析(原理篇)
地中断线程-实践篇Java“优雅”地中断线程-原理篇真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
小鱼人爱编程
·
2021-10-28 13:13
Java 并发之 ReentrantReadWriteLock 深入分析
地中断线程-实践篇Java“优雅”地中断线程-原理篇真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
小鱼人爱编程
·
2021-10-28 13:01
分析
Java并发
编程之信号量Semaphore
目录一、认识Semaphore1.1、Semaphore的使用场景1.2、Semaphore使用1.3、Semaphore信号量的模型二、Semaphore深入理解2.1、Semaphore基本属性2.2、Semaphore的公平性和非公平性2.3、其他Semaphore方法一、认识Semaphore1.1、Semaphore的使用场景Semaphore的使用场景主要用于流量控制,比如数据库连接,
·
2021-10-28 10:54
TCP IP网络
编程学习笔记
基本数据结构和函数表示IPv4地址的结构体:structsockaddr_in{sa_family_tsin_family;//表示地址族uint16_tsin_port;//表示16位的端口号(包括TCP和UDP)structin_addrsin_addr;//32位的ip地址charsin_zer[8];//不使用};对于in_addr:structin_addr{In_addr_ts_add
·
2021-10-27 14:06
c++网络编程linux基础
java并发
之synchronized
目录1、使用方式2、Monitor(管程)2.1关于管程模型2.2MesaSemantics2.3BrinchHansonSemantics2.4HoareSemantics2.5monitorenter2.6monitorexit3、可见性和重排序4、局限与性能前言:Java为我们提供了隐式(synchronized声明方式)和显式(java.util.concurrentAPI编程方式)两种工
·
2021-10-27 14:09
Java并发
之 AQS 深入解析(上)
地中断线程-实践篇Java“优雅”地中断线程-原理篇真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
小鱼人爱编程
·
2021-10-27 13:23
Java并发
编程学习之路(六)ThreadLocal、BlockingQueue、CopyOnWriteArrayList、ConcurrentHashmap
文章目录一、ThreadLocal1.1ThreadLocal的实现原理1.2ThreadLocalMap详解1.2.1Entry数据结构1.2.2set方法1.2.3getEntry方法1.2.4remove方法1.3ThreadLocal的使用场景1.4造成内存泄漏的原因1.5为什么使用弱引用1.6Thread.exit()1.7ThreadLocal最佳实践二、BlockingQueue2.
解梦者
·
2021-10-26 19:45
多线程
java
阻塞队列
并发
并发编程
Java Synchronized实现互斥之应用与源码初探
地中断线程-实践篇Java“优雅”地中断线程-原理篇真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
小鱼人爱编程
·
2021-10-26 13:22
Java Unsafe/CAS/LockSupport 应用与原理
地中断线程-实践篇Java“优雅”地中断线程-原理篇真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
小鱼人爱编程
·
2021-10-26 13:08
并发编程从零开始(一)
Java并发
编程主要涉及以下几个部分:并发编程三要素:原子性:即一个不可再被分割的颗粒。在Java中原子性指的是一个或多个操作要么全部执行成功要么全部执行失败。有序性:程序执行的
会编程的老六
·
2021-10-25 19:45
juc
java
juc
并发编程
Java “优雅”地中断线程(实践篇)
地中断线程-实践篇Java“优雅”地中断线程-原理篇真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
小鱼人爱编程
·
2021-10-25 13:53
再来捋捋Java 线程状态
地中断线程-实践篇Java“优雅”地中断线程-原理篇真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
小鱼人爱编程
·
2021-10-25 13:38
Java 线程基础
地中断线程-实践篇Java“优雅”地中断线程-原理篇真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
小鱼人爱编程
·
2021-10-24 13:48
Java 线程池之必懂应用-原理篇(下)
地中断线程-实践篇Java“优雅”地中断线程-原理篇真正理解JavaVolatile的妙用JavaThreadLocal你之前了解的可能有误JavaUnsafe/CAS/LockSupport应用与原理
Java
小鱼人爱编程
·
2021-10-24 13:27
Java并发
容器介绍
目录1、原子类2、锁3、并发容器4、List接口下5、Map接口下6、Set接口下7、Queue接口下
Java并发
包(concurrent)是Java用来处理并发问题的利器,该并发包中主要有原子类,锁(
·
2021-10-23 14:34
Java并发
编程之threadLocal
目录1、ThreadLocal介绍2、ThreadLocal使用实例3、ThreadLocal实现原理1、ThreadLocal介绍多个线程访问同一个共享变量时特别容易出现并发问题,特别是多线程需要对共享变量进行写入时。为了保证线程安全,一般使用者在访问共享变量的时候需要进行适当的同步,如图同步的一般措施是加锁,这就需要使用者对锁有一定的了解,这显然加重了使用者的负担,那么有没有一种方法可以做到,
·
2021-10-22 10:29
Java并发
编程之线程中断
目录线程中断:voidinterrupted()方法:中断线程,例如,当线程A运行时,线程B可以调用线程A的interrupted()方法来设置线程的中断标志为true并立即返回。设置标志仅仅是为了设置标志,线程A实际并没有被中断,它会继续往下执行,如果线程A因为调用了wait()方法,join()方法或者sleep()方法而引起的阻塞挂起,这时候若线程B调用线程A的interrupted()方法
·
2021-10-22 10:29
浅谈
Java并发
之同步器设计
前言:在
Java并发
内存模型详情了解到多进程(线程)读取共享资源的时候存在竞争条件。计算机中通过设计同步器来协调进程(线程)之间执行顺序。同步器作用就像登机安检人员一样可以协调旅客按顺序通过。
·
2021-10-22 10:22
Java并发
内存模型详情
目录1、Java内存模型2、硬件内存架构3、实际执行3.1共享对象可见性3.2竞争条件Java是一门支持多线程执行的语言,要编写正确的并发程序,了解Java内存模型是重要前提。而了解硬件内存模型有助于理解程序的执行。本文主要整理以下内容Java内存模型硬件内存架构共享对象可见性竞争条件1、Java内存模型Java内存模型最新修订是在Java5。JSR-176罗列了J2SE5.0相关发布特性,包含其
·
2021-10-22 10:50
并发
编程学习笔记
一 线程中断 两阶段终止模式 线程状态 synchronized原理
并发
编程学习笔记
一线程中断线程的状态synchronized原理重量级锁轻量级锁偏向锁线程中断两种interrupt()方法执行情况:当被中断的线程正处于sleepjoinwait状态在执行thread.interrupt
Ghost1590
·
2021-10-15 22:02
java
java
并发编程
锁
Guava RateLimiter 实现 API 限流,这才是正确的姿势!
Guava提供的RateLimiter可以限制物理或逻辑资源的被访问速率,咋一听有点像
java并发
包下的Samephore,但是又不相同,RateLimiter控制的是速率,Samephore控制的是并发量
·
2021-10-13 14:59
java
碉堡了!Alibaba 爆款 Java 高并发核心编程手册,在牛博网上被疯狂转载!
经过小编的多次筛选,这份阿里的
Java并发
编程基础知识,更加
java小菜鸡一个
·
2021-10-12 10:55
java高并发
java
面试
Java并发
编程之阻塞队列深入详解
目录1.什么是阻塞队列2.阻塞队列的代码使用3.生产者消费者模型(1)应用一:解耦合(2)应用二:削峰填谷(3)相关代码4.阻塞队列和生产者消费者模型功能的实现1.什么是阻塞队列阻塞队列是一种特殊的队列,和数据结构中普通的队列一样,也遵守先进先出的原则同时,阻塞队列是一种能保证线程安全的数据结构,并且具有以下两种特性:当队列满的时候,继续向队列中插入元素就会让队列阻塞,直到有其他线程从队列中取走元
·
2021-10-11 10:03
这些技能都没掌握还想去大厂?掌握这些“并发编程”核心技能入职阿里不是梦
借用
Java并发
编程实践中的话”编写正确的程序并不容易,而编写正常的并发程序就更难了”,相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各个操作的顺序是不可预期的
皮皮聊数据
·
2021-09-25 15:05
java
算法
经验分享
职场和发展
程序人生
Java并发
之原子性 有序性 可见性及Happen Before原则
1.原子性(Atomicity)原子性指的是一个操作是不可中断的,即使是在多线程环境下,一个操作一旦开始就不会被其他线程影响。由Java内存模型来直接保证的原子性变量操作包括read、load、assign、use、store和write这六个,我们大致可以认为,基本数据类型的访问、读写都是具备原子性的(例外就是long和double的非原子性协定)。如果应用场景需要一个更大范围的原子性保证(经常
·
2021-09-24 09:12
Java并发
编程八股文!
Java并发
大家好,我是大彬。最近在面试,看了很多面经,将常见的
Java并发
编程常见面试题总结了一下,如果对你有帮助,可以收藏和点赞,后续还会继续更新新的面试题目哦!
·
2021-09-23 19:50
java
Java并发
编程之关键字volatile的深入解析
目录前言一、可见性二、有序性总结前言volatile是研究
Java并发
编程绕不过去的一个关键字,先说结论:volatile的作用:1.保证被修饰变量的可见性2.保证程序一定程度上的有序性3.不能保证原子性下面
·
2021-09-23 18:53
上一页
48
49
50
51
52
53
54
55
下一页
按字母分类:
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
其他