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并发
编程第七课 阻塞队列
第34讲:什么是阻塞队列?在本课时中我们主要讲解一下什么是阻塞队列。阻塞队列的作用阻塞队列,也就是BlockingQueue,它是一个接口,如代码所示:public interface BlockingQueue extends Queue{...}BlockingQueue继承了Queue接口,是队列的一种。Queue和BlockingQueue都是在Java5中加入的。BlockingQueu
办公模板库 素材蛙
·
2022-05-27 13:09
教程
java
java
并发
十年架构师经验,写下这篇Java高并发总结,堪称教科书级
然而现在网上关于
Java并发
编程的学习笔记资料多如牛毛,却没有看到那种完整全面的,因此今天把我之前收集整理到的这份Java多线程高并发实战手册拿出来分享给有需要的小
·
2022-05-26 20:51
java高并发并发程序员
为什么Java有了synchronized之后还造了Lock锁这个轮子?
众所周知,synchronized和Lock锁是
java并发
变成中两大利器,可以用来解决线程安全的问题。
三友的java日记
·
2022-05-26 12:00
Java并发
编程深入学习之线程池 超详细笔记
目录七、共享模型之工具--线程池1.线程池介绍2.ThreadPoolExecutor(重点)①线程池状态②构造方法(必须掌握)③JDK提供的线程工厂方法newFixedThreadPoolnewCachedThreadPoolnewSingleThreadExecutor使用第三方的线程工厂④线程池提交任务submit案例:invokeAll案例:invokeAny案例:⑤关闭线程池shutdo
未来很长,别只看眼前
·
2022-05-25 21:10
java并发编程
(JUC)
java
学习
开发语言
Java并发
编程-Java内存模型(JMM)
Java并发
编程-Java内存模型(JMM)前言在上一章
Java并发
编程-Android的UI框架为什么是单线程的?
·
2022-05-25 19:39
androidjava
那些优秀的程序员都在看哪些书?
核心技术卷2高级特性(原书第11版)[CoreJava]四、Java语言程序设计基础篇(原书第12版)五、Java编程思想[ThinkinginJava]六、EffectiveJava中文版(原书第3版)七、
Java
哪 吒
·
2022-05-25 11:59
搬砖工逆袭Java架构师
java
程序人生
java-ee
BiBi - 并发编程 -2- volatile
From:
Java并发
编程的艺术目录BiBi-并发编程-0-开篇BiBi-并发编程-1-挑战BiBi-并发编程-2-volatileBiBi-并发编程-3-锁BiBi-并发编程-4-原子操作BiBi-并发编程
奋飞的蜗牛ing
·
2022-05-24 15:46
Java并发
线程池底层原理剖析和源码分析
目录一、线程和线程池的效率对比二、Java线程池三、线程池源码分析四、ScheduledThreadPoolExecutor源码分析一、线程和线程池的效率对比使用线程方式执行程序/****使用线程的方式去执行程序*/publicclassThreadTest{publicstaticvoidmain(String[]args)throwsInterruptedException{Longstart
swadian2008
·
2022-05-24 12:52
并发编程
Java线程池
线程池
线程池源码分析
【Java 】JUC并发编程
Java并发
引入1、程序、进程、线程的概念程序通常为了完成特定的任务、用某种语言编写的一组指令的结合。
秋刀鱼与猫_
·
2022-05-22 07:35
Java基础
java
开发语言
后端
java高并发api
Java并发
中的ABA问题学习与解决方案
目录1.简介2.Compareandswap3.ABA问题3.1ABA问题的实际场景:账户余额修改3.2账户余额修改时产生的问题4.银行取款问题代码演示5.值类型与引用类型的场景6.解决方法7.Java中的解决方法8.总结1.简介我们将了解在并发编程中的ABA问题。同时学习引起该问题的根因及问题解决办法。2.Compareandswap为了理解根本原因,首先回顾一下Compareandswap的概
·
2022-05-20 18:23
【
JAVA并发
编程】Condition的实现原理
一、Condition简介Java对象的wait()、notify()以及notifyAll()方法,这些方法与synchronized关键字配合,可以实现等待/通知模式。Condition接口也提供了类似功能,与Lock配合可以实现等待/通知模式,但是两者还是有一些区别的。对比项ObjectMoitorCondition前置条件获取对象的锁调用Lock.lock()获取锁调用lock.newCo
·
2022-05-20 00:57
java
java并发
数据包Exchanger线程间的数据交换器
java.util.concurrent.Exchanger可以用来进行数据交换,或者被称为“数据交换器”。两个线程可以使用Exchanger交换数据,下图用来说明Exchanger的作用在下面的代码中首先我们定义了一个Exchanger,用于数据交换然后定义了两个线程对象bookExchanger1和bookExchanger2,两个线程都持有Exchanger交换器对象用于数据交换两个线程中的
·
2022-05-19 09:07
Java并发
编程-Android的UI框架为什么是单线程的?
前言众所周知,Android会在ViewRootImpl中调用checkThread方法检测是否是在UI线程中更新UI//ViewRootImpl.javafinalThreadmThread;publicViewRootImpl(Contextcontext,Displaydisplay){mThread=Thread.currentThread();}voidcheckThread(){if(
·
2022-05-18 10:25
androidjava
Java学到什么程度才算精通?(1),网易架构师深入讲解Java开发
Java并发
技术完全可以独立出来学习,是Java进阶知识的一大重点。2.5Java网络编程和服务器这一块内容是Java中比较复杂但也很重要的一块内容。
普通网友
·
2022-05-17 18:00
程序员
后端
面试
java
Java并发
包(JUC)中的信号量Semaphore详解,深入浅出Semaphore
支持博主:点赞、收藏⭐、留言目录1.Semaphore简介1.1Semaphore是什么1.2Semaphore的作用2.Semaphore中的方法(我们在之后的章节中会详细讲解,读者可以先大致看一下)3.acquire()方法和release()方法3.1构造方法、acquire()方法和release()方法简介3.2Semaphore构造器中控制线程并发量为一(某段时间内只能并发一个线程)3
MrYuShiwen
·
2022-05-17 18:58
#
Java并发与异步编程高级教程
Java
JUC
并发
信号量
Semaphore
[
java并发
编程]基于信号量semaphore实现限流器
[TOC]一、什么是信号量“信号量”在编程术语中使用单词semaphore,那什么是“信号量”?信号量就好比你家厨房入口架子上摆了三把锅。如果你的孩子热奶拿走一把,你的老婆热汤拿走一把,你的妈妈做菜拿走一把,你想煮面条就没有锅了。当你看到这种情况,你就不会进入厨房了,你处于等待状态。也就说厨房按照“锅的数量”作为信号量,只能容纳三个人(线程)。当你的老婆热完汤之后,把锅重新放回架子上,你就可以去获
·
2022-05-17 08:05
java
[
java并发
编程]基于信号量semaphore实现限流器
一、什么是信号量“信号量”在编程术语中使用单词semaphore,那什么是“信号量”?信号量就好比你家厨房入口架子上摆了三把锅。如果你的孩子热奶拿走一把,你的老婆热汤拿走一把,你的妈妈做菜拿走一把,你想煮面条就没有锅了。当你看到这种情况,你就不会进入厨房了,你处于等待状态。也就说厨房按照“锅的数
字母哥博客
·
2022-05-17 08:00
java并发
编程StampedLock高性能读写锁
目录一、读写锁二、悲观读锁三、乐观读一、读写锁在我的《
java并发
编程》上一篇文章中为大家介绍了《ReentrantLock读写锁》,ReentrantReadWriteLock可以保证最多同时有一个线程在写数据
·
2022-05-16 11:05
java并发
编程-StampedLock高性能读写锁
[TOC]一、读写锁在我的《
java并发
编程》上一篇文章中为大家介绍了《ReentrantLock读写锁》,ReentrantReadWriteLock可以保证最多同时有一个线程在写数据,或者可以同时有多个线程读数据
·
2022-05-16 08:00
java
java并发
编程-StampedLock高性能读写锁
一、读写锁在我的《
java并发
编程》上一篇文章中为大家介绍了《ReentrantLock读写锁》,ReentrantReadWriteLock可以保证最多同时有一个线程在写数据,或者可以同时有多个线程读数据
字母哥博客
·
2022-05-16 08:00
java并发
高的情况下用ThreadLocalRandom来生成随机数
目录一:简述二:Random的性能差在哪里三:ThreadLocalRandom的简单使用四:为什么ThreadLocalRandom能在保证线程安全的情况下还能有不错的性能一:简述如果我们想要生成一个随机数,通常会使用Random类。但是在并发情况下Random生成随机数的性能并不是很理想,今天给大家介绍一下JUC包中的用于生成随机数的类--ThreadLocalRandom.(本文基于JDK1
·
2022-05-15 12:22
java
java并发
编程中ReentrantLock可重入读写锁
目录一、ReentrantLock可重入锁二、ReentrantReadWriteLock读写锁三、读锁之间不互斥一、ReentrantLock可重入锁可重入锁ReentrantLock是一个互斥锁,即同一时间只有一个线程能够获取锁定资源,执行锁定范围内的代码。这一点与synchronized关键字十分相似。其基本用法代码如下:Locklock=newReentrantLock();//实例化锁/
·
2022-05-15 12:51
java
java并发
高的情况下用ThreadLocalRandom来生成随机数
目录一:简述二:Random的性能差在哪里三:ThreadLocalRandom的简单使用四:为什么ThreadLocalRandom能在保证线程安全的情况下还能有不错的性能一:简述如果我们想要生成一个随机数,通常会使用Random类。但是在并发情况下Random生成随机数的性能并不是很理想,今天给大家介绍一下JUC包中的用于生成随机数的类--ThreadLocalRandom.(本文基于JDK1
·
2022-05-15 10:21
java并发
编程中ReentrantLock可重入读写锁
目录一、ReentrantLock可重入锁二、ReentrantReadWriteLock读写锁三、读锁之间不互斥一、ReentrantLock可重入锁可重入锁ReentrantLock是一个互斥锁,即同一时间只有一个线程能够获取锁定资源,执行锁定范围内的代码。这一点与synchronized关键字十分相似。其基本用法代码如下:Locklock=newReentrantLock();//实例化锁/
·
2022-05-15 10:50
【
java并发
编程】ReentrantLock 可重入读写锁
[TOC]一、ReentrantLock可重入锁可重入锁ReentrantLock是一个互斥锁,即同一时间只有一个线程能够获取锁定资源,执行锁定范围内的代码。这一点与synchronized关键字十分相似。其基本用法代码如下:Locklock=newReentrantLock();//实例化锁//lock.lock();//上锁booleanlocked=lock.tryLock();//尝试上锁
·
2022-05-15 08:40
java
【
java并发
编程】ReentrantLock 可重入读写锁
一、ReentrantLock可重入锁可重入锁ReentrantLock是一个互斥锁,即同一时间只有一个线程能够获取锁定资源,执行锁定范围内的代码。这一点与synchronized关键字十分相似。其基本用法代码如下:Locklock=newReentrantLock();//实例化
字母哥博客
·
2022-05-15 08:00
【
Java并发
笔记】03 互斥锁(上):解决原子性问题
原子性问题的源头是线程切换Q:如果禁用CPU线程切换是不是就解决这个问题了?A:单核CPU可行,但到了多核CPU的时候,有可能是不同的核在处理同一个变量,即便不切换线程,也有问题。所以,解决原子性的关键是「同一时刻只有一个线程处理该变量,也被称为互斥」。如何做到呢?用「锁」。一、锁模型一)简易锁模型一般看到的锁模型长下面这样。但对于这个模型,会有几个疑问:锁的是什么?临界区的这一堆代码相关的都被锁
·
2022-05-14 21:28
java并发
收藏了800道Java后端经典面试题,分享给大家,希望你找到自己理想的Offer呀~
Java基础Java集合
Java并发
&&多线程JVM篇数据库缓存/Redis计算机网络消息队列mybatis操作系统SpringNetty/tomcat常用Linu
M偶遇在沙漠
·
2022-05-14 20:37
java后端
Java
面经
java
面试
经验分享
【
JAVA并发
编程】AbstractQueuedSynchronizer(AQS)的实现原理
一、AQS基本介绍同步器AbstractQueuedSynchronizer(简称AQS)是用来构建其他同步组件的基础,它使用了一个int变量来表示同步状态state,通过内置的FIFO队列来完成线程的排队工作。二、如何使用AQS来构建同步组件?同步器的设计是基于模板模式的,使用者继承同步器并重写指定的方法。同步器可重写的方法如下:方法名称描述booleantryAcquire(intarg)尝试
·
2022-05-14 18:49
java后端
Java开发必备:腾讯架构师解析
Java并发
编程从入门到精通
编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。为什么需要并发并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(时机)分开。这样做可以明显改进应用程序的吞吐量(获得更多的CPU调度时间)和结构(程序有多个部分在协同工作)
·
2022-05-14 16:15
java并发并发编程程序员
【
java并发
编程】Lock & Condition 协调同步生产消费
一、协调生产/消费的需求本文内容主要想向大家介绍一下Lock结合Condition的使用方法,为了更好的理解Lock锁与Condition锁信号,我们来手写一个ArrayBlockingQueue。JDK实际上已经有这个类,基于Lock锁与Condition锁信号实现的,当然JDK实现代码很复杂包含了更严谨的逻辑校验,以及从性能优化的角度做了更多的工作。本文中我们只是来简单实现一下其核心逻辑:Ar
·
2022-05-14 09:01
java
【
java并发
编程】Lock & Condition 协调同步生产消费
一、协调生产/消费的需求本文内容主要想向大家介绍一下Lock结合Condition的使用方法,为了更好的理解Lock锁与Condition锁信号,我们来手写一个ArrayBlockingQueue。JDK实际上已经有这个类,基于Lock锁与Condition锁信号实现的,当然JDK实现代码很复杂
字母哥博客
·
2022-05-14 09:00
java并发
容器ConcurrentHashMap深入分析
目录前言基础回顾红黑树红黑树数据结构红黑树插入数据多线程竞争下的读写操作扩容原理正在扩容&&有多个线程正在竞争扩容期间的读操作扩容期间的写操作总结前言我是fancy,一个年纪轻轻bug量就累计到3200个的程序员,同事们都夸我一个人养活了整个测试组。最近迷上了并发编程。并发这玩意怎么说呢,就是你平时工作用不到,一用就用在面试上。这不,又卷起了并发容器。那说起并发容器,你一定也知道那几个,CopyO
·
2022-05-13 11:11
【
Java并发
笔记】01 并发编程Bug的源头
一、根本原因「CPU、内存、磁盘之间的速度差异」为了能同时执行多个任务,CPU发展出时间片轮转、多核等CPU要从内存中读数据太慢了,所以给自己设置了缓存CPU读磁盘更慢了,所以可以让该线程阻塞二、直接原因缓存导致的可见性问题CPU把要处理的数据加载到自己的缓存中,处理完了放回自己的缓存。另一个CPU同样的处理,就导致可能看不到上一个CPU处理的结果。线程切换带来的原子性问题程序中的一行代码往往不是
·
2022-05-12 16:45
java并发
【
Java并发
笔记】02 Java内存模型:看Java如何解决可见性和有序性问题
如何解决其中的可见性和有序性导致的问题,这也就引出来了今天的主角——Java内存模型。一、什么是Java内存模型?导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性、有序性最直接的办法就是禁用缓存和编译优化,但这样虽然解决了问题,但也导致带来的性能优化都没了。因此,解决方案是:提出一套规则和方法,是程序员能在该禁用的时候禁用,不该禁用的时候不禁用。Java内存模型规范就是来解决这个问
·
2022-05-12 16:15
java并发
Java并发
编程之volatile与JMM多线程内存模型
目录一、通过程序看现象二、为什么会产生这种现象(JMM模型)?三、MESI缓存一致性协议一、通过程序看现象在开始为大家讲解Java多线程缓存模型之前,我们先看下面的这一段代码。这段代码的逻辑很简单:主线程启动了两个子线程,一个线程1、一个线程2。线程1先执行,sleep睡眠2秒钟之后线程2执行。两个线程使用到了一个共享变量shareFlag,初始值为false。如果shareFlag一直等于fal
·
2022-05-12 16:44
【金九银十】面试竟然被这31道Java基础题难倒了?细节爆炸
因此,
Java并发
问题一直是各个大厂面试的重点之一。很多程序员每天
Java老司机一枚
·
2022-05-11 20:18
程序员
java
后端
面试
互联网裁员大潮下,还可以这样乘风破浪吗
一直想整理出一份完美的面试宝典,但是时间上一直腾不开,这套一千多道面试题宝典,结合今年金三银四各种大厂面试题,下面就给粉丝们分享一下,这份Java神技;这套互联网Java工程师面试题包括了:基础&进阶篇字符串&集合面试题汇总、.
Java
那只斑马不睡觉
·
2022-05-10 11:13
java
面试
经验分享
tomcat
jar
对象面试官系列之
Java并发
--面试官看了都说好
1.线程的实现A.实现Runnable接口;多个线程共同完成一个任务B.实现Callable接口;与Runnable相比,Callable可以有返回值还可以抛出异常,返回值通过FutureTask进行封装。FutureTaskfutureTask=newFutureTask(newCallTest());newThread(futureTask).start();C.继承Thread类。(多个线程
骑着猪追马的程序员
·
2022-05-09 14:51
面试
java
开发语言
后端
Java并发
编程之对象的组合
目录1.设计线程安全的类1.1收集同步需求1.2依赖状态的操作1.3状态的所有权2.实例封闭2.1Java监视器模式3.线程安全性的委托3.1基于委托的车辆追踪器3.2独立的状态变量3.3发布底层的状态变量1.设计线程安全的类在设计线程安全类的过程中,需要包含以下三个基本要素:找出构成对象状态的所有变量。找出约束变量的不变性条件。建立对象状态的并发访问管理策略。1.1收集同步需求在很多类中都定义了
·
2022-05-08 18:55
java并发
编程工具类PriorityBlockingQueue优先级队列
目录前言1.PriorityBlockingQueue特性2.PriorityBlockingQueue应用实例3.使用Java8Comparator做优先级排序的实例前言在之前的文章中已经为大家介绍了
java
·
2022-05-08 16:52
Java并发
编程之StampedLock锁介绍
StampedLock:StampedLock是并发包里面JDK8版本新增的一个锁,该锁提供了三种模式的读写控制,当调用获取锁的系列函数时,会返回一个long型的变量,我们称之为戳记(stamp),这个戳记代表了锁的状态。其中try系列获取锁的函数,当获取锁失败后会返回为0的stamp值。当调用释放锁和转换锁的方法时需要传入获取锁时返回的stamp值。StampedLock提供的三种读写模式的锁分
·
2022-05-08 16:22
美团配送 二面(40min) Java后端 暑期实习面经
1.自我介绍(提到了了解
Java并发
、Java虚拟机)2.既然你提到
Java并发
,那能不能谈谈你对并发的理解?(先说了单线程的一些缺点,所以需要多线程并发。
十一技术斩
·
2022-05-07 13:40
java
开发语言
数据库
mysql
xml
【
JAVA并发
编程】ThreadPoolExecutor的源码解读
一、简介ThreadPoolExecutor是
Java并发
编程中使用最广泛的类之一,由于线程的创建和销毁需要消耗系统资源,所以通过使用线程池来有效管理线程。
·
2022-05-06 22:32
java
面试突击44:volatile 有什么用?
volatile是
Java并发
编程的重要组成部分,也是常见的面试题之一,它的主要作用有两个:保证内存的可见性和禁止指令重排序。下面我们具体来看这两个功能。
·
2022-05-05 11:00
java面试
面试突击44:volatile 有什么用?
volatile是
Java并发
编程的重要组成部分,也是常见的面试题之一,它的主要作用有两个:保证内存的可见性和禁止指令重排序。下面我们具体来看这两个功能。
Java中文社群
·
2022-05-05 11:00
(JUC 下典型的类)Java 并发包中线程同步器
Java并发
包中线程同步器CountDownLatchCountDownLatch与join方法的区别CountDownLatch中的方法介绍回环屏障CyclicBarrierCyclicBarrier
阿布~
·
2022-05-03 07:09
Java
多线程
笔记
java
多线程
JUC
深入理解
Java并发
编程之LinkedBlockingQueue队列
前面一篇文章我们介绍了使用CAS算法实现的非阻塞队列ConcurrentLinedQueue,下面我们来介绍使用独占锁实现的阻塞队列LinkedBlockingQueue。LinkedBlockingQueue也是使用单向链表实现的,其也有两个Node,分别用来存放首、尾节点,并且还有一个初始值为0的原子变量count,用来记录队列元素个数。另外还有两个ReentrantLock的实例,分别用来控
·
2022-04-27 10:20
分布式锁的实现方案
什么是分布式锁当多个进程在同一个系统中,用分布式锁控制多个进程对资源的访问分布式锁应用场景传统的单体应用单机部署情况下,可以使用
java并发
处理相关的API进行互斥控制。
bug的自我救赎
·
2022-04-24 22:00
Java并发
编程实战第二部分学习记录
14|Lock和Condition(上):隐藏在并发包中的管程并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。这两大问题,管程都是能够解决的。JavaSDK并发包通过Lock和Condition两个接口来实现管程,其中Lock用于解决互斥问题,Condition用于解决同步问题。再造管程的理由这三种方案可以全面弥补synchr
奋斗小亮
·
2022-04-24 09:28
java高并发
上一页
37
38
39
40
41
42
43
44
下一页
按字母分类:
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
其他