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并发
编程工具类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高并发
《Java 并发编程实战》--读书笔记
Java并发
编程实战注:极客时间《
Java并发
编程实战》–读书笔记GitHub:https://github.com/ByrsH/Reading-notes/blob/master/Concurrency
回归心灵
·
2022-04-24 09:57
Java
读书笔记
java并发
编程实战笔记
1、复合操作若一个类里有多个属性状态,对每个属性使用atomic类修饰,并且一个属性更新,要在同一原子操作内更新其他所有属性,这样才是线程安全类。需要整体类的状态操作是原子的。要保持状态的一致性,就需要在单个原子操作中更新所有相关的状态变量。判断同步代码块的合理大小,要权衡安全性、简单性和性能。当执行时间较长的计算或可能无法快速完成的操作(如网络IO、控制台IO)一定不要持有锁。2、对象的共享1)
weixin_30262255
·
2022-04-24 09:27
java
数据库
数据结构与算法
java线程池最大线程数_
Java并发
(八)计算线程池最佳线程数
目录一、理论分析二、实际应用为了加快程序处理速度,我们会将问题分解成若干个并发执行的任务。并且创建线程池,将任务委派给线程池中的线程,以便使它们可以并发地执行。在高并发的情况下采用线程池,可以有效降低线程创建释放的时间花销及资源开销,如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存以及“过度切换”(在JVM中采用的处理机制为时间片轮转,减少了线程间的相互切换)。但是有一个很大的问题摆
王晋东不在家
·
2022-04-24 09:56
java线程池最大线程数
JAVA并发
编程实战
岛下载电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍电子书下载(皮皮云盘-点击“普通下载”)购买正版封页编辑推荐第16届Jolt大奖提名图书JavaOne大会*畅销图书了解
Java
CiCi岛
·
2022-04-24 09:25
《
Java并发
编程实战》学习笔记
什么是并发编程?跳出来看全局就是3部分:分工、协作、互斥钻进去看本质:技术的本质就是背后的理论模型并发理论基础并发编程产生bug的原因可见性:cpu缓存导致共享变量在多核cpu的情况下,不可见,所以计算会出错原子性:高级语言中的一个操作可能是操作系统中多个操作,如count+=1,其实对应操作系统3步操作「1、count从内存加载到cpu寄存器;2、寄存器执行+1操作;3、将结果写回内存(缓存机制
卜夫
·
2022-04-24 09:25
学习笔记
java
并发编程
GOvoid
java并发
编程实战
java并发
编程的艺术
java线程池说明http://www.oschina.net/question/565065_86540java中断机制http://ifeve.com/java-interrupt-mechanism/Ask、现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?join方法如果一个线程A执行了thread.join()语句,其含义是当前线程A等待threa
M_Jack
·
2022-04-24 09:55
java
Java 并发编程实战-创建和执行任务的最佳实践
Java并发
的历史始于非常原始和有问题的机制,并且充满各种尝试的优化。本文将展示一个规范形式,表示创建和运行任务的最简单,最好的方法。
JavaEdge.
·
2022-04-24 09:23
Java并发编程
java
Java并发
编程之线程状态介绍
目录线程状态概述睡眠sleep方法等待和唤醒等待唤醒的一个小例子线程状态概述线程由生到死的完整过程:当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,有几种状态呢?在API中java.lang.Thread.State这个枚举中给出了六种线程状态:线程状态导致状态发生条件NEW(新建)线程刚被创建,但是并未启动。还没调用start方法。MyThre
·
2022-04-18 15:35
Java并发
编程之线程创建介绍
目录1.线程与进程2.线程的创建与运行1.线程与进程进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是一个实体,一个进程中至少有一个线程,是CPU调度和分配的基本单位,进程中的多个线程共享进程的资源。进程的三个特征:动态性:进程是运行中的程序,要动态的占用内存,CPU和网络等资源。独立性:进程与进程之间是相互独立的,彼此有自己的独立内存区域。并发性:假如CPU是单核
·
2022-04-18 13:01
Java并发
编程之原子操作类详情
JUC包提供了一系列的原子性操作类,这些类都是使用非阻塞算法CAS实现的,相比使用锁实现原子性操作者在性能上有很大提升。JUC包中含有AtomicInteger、AtomicLong、AtomicBoolean,它们的原理类似。下面我们以AtomicLong为例来讲解。我们先来看一下部分源码:publicclassAtomicLongextendsNumberimplementsjava.io.S
·
2022-04-15 21:57
Java并发
编程回环屏障CyclicBarrier
CyclicBarrier前面介绍的CountDownLatch在解决多个线程同步方面相对于调用线程的join方法已经有了不少优化。但是CountDownLatch的计数器是一次性的,也就是等到计数器值变为0后,再调用CountDownLatch的await和countdown方法都会立刻返回,这就起不到线程同步的效果了。所以为了满足计数器可以重置的需要,JDK开发组提供了CyclicBarrie
·
2022-04-15 18:22
Java并发
编程同步器CountDownLatch
CountDownLatch在日常开发中经常会遇到需要在主线程中开启多个线程去并行执行任务,并且主线程需要等待所有子线程执行完毕后再进行汇总的场景。在CountDownLatch出现之前般都使用线程的join()方法来实现这一点,但是join方法不够灵活,不能够满足不同场景的需要,所以JDK开发组提供了CountDownLatch这个类,我们前面介绍的例子使用CoumtDownLatch会更优雅。
·
2022-04-15 18:50
Java并发
编程信号量Semapher
Semapher信号量也是Java中的一个同步器,与CountDownLatch和CycleBarrier不同的是,它内部的计数器是递增的,并且在一开始初始化Semaphoer时可以指定一个初始值,但是并不需要知道需要同步的线程个数,而是在需要同步的地方调用acquire方法时指定需要同步的线程个数。我们通过下面一个例子来看一下Semapher效果:importjava.util.concurre
·
2022-04-15 18:18
Java并发
编程之ConcurrentLinkedQueue队列详情
ConcurrentLinkedQueueJDK中提供了一系列场景的并发安全队列。总的来说,按照实现方式的不同可分为阻塞队列和非阻塞队列,前者使用锁实现,而后则使用CAS非阻塞算法实现。ConcurrentLinkedQueue内部的队列使用单向链表方式实现,其中有两个volatile类型的Node节点分别用来存放队列的首、尾节点。从下面的无参构造函数可知,默认头、尾节点都是指向item为null
·
2022-04-15 16:09
Java并发
编程系列之三JUC概述
上篇文章为解决多线程中出现的同步问题引入了锁的概念,上篇文章介绍的是Synchronized关键字锁,本篇文章介绍更加轻量级的锁Lock接口及引出JUC的相关知识。本文不力争阐释清楚JUC框架的所有内容,而是站在一定的高度下,了解Juc下包的设计与实现。[TOC]一、LOCK锁概述实现同步的另外一种方式是Lock锁。Lock锁是一个接口,其所有的实现类为:ReentrantLock(可重入锁)Re
·
2022-04-15 16:06
基于 Redis 分布式锁
1、主流分布式锁实现方案基于数据库实现分布式锁基于缓存(redis等)基于Zookeeper2、根据实现方式分类:类CAS自旋式分布式锁:询问的方式,类似
java并发
编程中的线程获询问的方式尝试加锁,如
毅丶俊
·
2022-04-15 09:00
Java并发
编程扩展(线程通信、线程池)
之前的文章——>
Java并发
编程之多线程使用ExecutorService、Callable、Future实现有返回结果的线程使用ExecutorService、Callable、Future实现有返回结果的线程
·
2022-04-14 18:24
java后端
Java并发
编程之Lock(同步锁、死锁)
这篇文章是接着我上一篇文章来的。上一篇文章同步锁为什么需要同步锁?首先,我们来看看这张图。这是一个程序,多个对象进行抢票。packageMovieDemo;publicclassThMimplementsRunnable{privateintcount=10;privateintnum=0;@Overridepublicvoidrun(){while(true){if(count共享资源只能被一个
·
2022-04-14 18:53
java后端
Java并发
编程之多线程
什么是多线程?因为我图片原因,详情可以看看我博客的文章:多线程并发我们首先,先要了解什么是进程,什么是线程。首先,我们看看进程。我们如果允许一个程序,它卡死了,我们通常会去任务管理器里面将进程结束。所以,这里所看见的,就是进程。那么,何为线程呢?首先,看看来自知乎的解释:线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中
·
2022-04-13 20:06
java后端
最新汪大神Java多线程编程实战(完整)
目录下载地址:百度网盘│├─
Java并发
编程.png│├─源码+ppt.rar│├─高并发编程第一阶段01讲、课程大纲及主要内容介绍.wmv│├─高并发编程第一阶段02讲、简单介绍什么是线程.wmv│├
快乐360
·
2022-04-13 10:57
2018最新汪大神Java多线程编程实战
目录│├─
Java并发
编程.png│├─源码+ppt.rar│├─高并发编程第一阶段01讲、课程大纲及主要内容介绍.wmv│├─高并发编程第一阶段02讲、简单介绍什么是线程.wmv│├─高并发编程第一阶段
weixin_44216302
·
2022-04-13 10:26
Java并发
系列之JUC中的Lock锁与synchronized同步代码块问题
目录一、Lock锁二、锁的底层三、案例案例一:传统的synchronized实现案例二:Lock锁的实现四、Lock锁和synchronized的区别写在前边:在Java服务端中,会常常遇到并发的场景,以下我使用两个售票的案例实现传统的Lock锁与synchronized加锁解决线程安全问题。本章代码:Gitee:juc.demo一、Lock锁ReentrantLock类:可重用锁(公平锁|非公平
·
2022-04-12 05:38
Java并发
编程之线程安全性
目录1.什么是线程安全性2.原子性2.1竞争条件2.2复合操作3.加锁机制3.1内置锁3.2重入4.用锁保护状态5.活跃性与性能1.什么是线程安全性当多个线程访问某个类时,不管运行时环境采用何种调用方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。无状态的对象一定是线程安全的,比如:Servlet。2.原子性2.1竞
·
2022-04-11 10:27
多线程学习第六课
2、《
Java并发
编程的艺术》关于CacheLine的解释:缓存中可以分配的最小存储单位。处理器填写缓存线时会加载整个缓存线,需要使用多个主内存读周期。3、关键字:“会加载整个缓存线”。
·
2022-04-11 10:53
多线程
Java线程池实现原理详解
这里借用《
Java并发
编程的艺术》提到的来说一下使用线程池的好处:降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
·
2022-04-10 22:01
java线程池
Java并发
编程最全面试题(三万字推荐)
Java并发
编程最全面试题文章目录
Java并发
编程最全面试题一、线程基础1.1线程创建方式1.1.1继承Thread类1.1.2实现Runnable接口1.1.3实现Callable接口1.1.4使用Executors
九离⠂
·
2022-04-08 08:38
java面试题
java基础
java
java面试
并发编程
Java并发
编程系列之二线程基础
上篇文章对并发的理论基础进行了回顾,主要是为什么使用多线程、多线程会引发什么问题及引发的原因,和怎么使用Java中的多线程去解决这些问题。正所谓,知其然知其所以然,这是学习一个知识遵循的原则。推荐读者先行查看并发编程的理论知识,以便可以丝滑入戏。并发编程系列之一并发理论基础本篇文章重点在于Java中怎么去使用多线程,和多线程的一些相关概念和操作,及怎么优化多线程。在Java中每个对象都有其生命周期
·
2022-04-07 16:51
后端java多线程
一 、
Java并发
编程基础讲解
1、并发和高并发的基本概念并发:同时拥有两个或者多个线程,如果程序在单核处理器上运行,多个线程将交替地换入或者换出内存,这些线程是同时‘存在’的,每个线程都处于执行过程中的某个状态,如果运行在多核处理器上,程序中的每个线程都将分配到一个处理器核上,因此可以同时运行。多个线程操作相同的资源,保证线程安全,合理使用资源。高并发高并发(HighConcurrency)是互联网分布式系统架构设计中必须考虑
AKyS佐毅
·
2022-04-07 11:50
(备战春招,每天进步亿点点)常见面试题总结——
Java并发
(1)
备战春招,每天进步亿点点,继续学习
Java并发
文章目录线程和进程有什么区别?说一下创建线程的几种方式?Runnable和Callable的区别?为什么要使用多线程呢?线程的有几种状态?什么是线程死锁?
爱敲代码的杜晓帅~
·
2022-04-07 07:17
面试题总结
java
CAS
java并发
java并发
—动态调整线程池
为什么要动态调整理论公式计算出的参数不能满足不同业务系统的需求,于是采取动态调整线程池各个参数来方便调优寻找更合适的设置。什么可以动态调整复习一下几个参数1、corePoolSize:thenumberofthreadstokeepinthepool,eveniftheyareidle,unless{@codeallowCoreThreadTimeOut}isset(核心线程数大小:不管它们创建以
·
2022-04-03 23:36
java
Java并发
——一文吃透线程池
大家好,这里是淇妙小屋,一个分享技术,分享生活的博主以下是我的主页,各个主页同步更新优质博客,创作不易,还请大家点波关注掘金主页后续会发布更多MySQL,Redis,并发,JVM,分布式等面试热点知识,以及Java学习路线,面试重点,职业规划,面经等相关博客转载请标明出处!1.Executor框架介绍1.1任务的两级调度模型应用程序通过Executor框架控制上层的调度下层的调度有OS内核控制,不
·
2022-04-03 20:58
java后端
Java并发
——CountDownLatch和CycliBarrier异同点详解
大家好,这里是淇妙小屋,一个分享技术,分享生活的博主以下是我的主页,各个主页同步更新优质博客,创作不易,还请大家点波关注掘金主页后续会发布更多MySQL,Redis,并发,JVM,分布式等面试热点知识,以及Java学习路线,面试重点,职业规划,面经等相关博客转载请标明出处!1.CountDownLatch允许一个或多个线程等待其他线程完成操作1.1类图1.2方法介绍publicCountDownL
·
2022-04-03 20:57
java后端
Java并发
编程实战【第三部分 活跃性、性能与测试】
文章目录第10章避免活跃性危险10.1死锁10.1.1锁顺序死锁10.1.2动态的锁顺序死锁10.1.3在协作对象之间发生的死锁10.1.4开放调用10.1.5资源死锁10.2死锁的避免与诊断10.2.1支持定时的锁10.2.2通过线程转储信息来分析死锁10.3其他活跃危险10.3.1饥饿10.3.2糟糕的响应性10.3.3活锁小结第11章性能与可伸缩性11.1对性能的思考11.2Amdahl定律
lyw4631
·
2022-04-02 17:53
JUC
Java书籍
java
开发语言
后端
Java并发
编程数据库与缓存数据一致性方案解析
目录一、序言二、不同的声音1、操作的先后顺序2、处理缓存的态度三、线程并发分析查询数据1、非并发环境2、并发环境更新数据1、非并发环境2、并发环境依赖环境四、先数据库后缓存数据一致性1、问题描述2、解决方式特殊情况解决方式五、小结一、序言在分布式并发系统中,数据库与缓存数据一致性是一项富有挑战性的技术难点。本文将讨论数据库与缓存数据一致性问题,并提供通用的解决方案。假设有完善的工业级分布式事务解决
·
2022-04-02 17:32
Java并发
——通过ReentrantReadWriteLock理解AQS的独占模式和共享模式
大家好,这里是淇妙小屋,一个分享技术,分享生活的博主以下是我的主页,各个主页同步更新优质博客,创作不易,还请大家点波关注掘金主页后续会发布更多MySQL,Redis,并发,JVM,分布式等面试热点知识,以及Java学习路线,面试重点,职业规划,面经等相关博客转载请标明出处!1.类图结构ReadWriteLock中有一个Sync对象,ReadLock与WriteLock共用该Sync对象,读锁与写锁
·
2022-04-02 17:30
java后端
Java并发
包线程池ThreadPoolExecutor的实现
线程池主要解决两个问题:一是当执行大量异步任务时线程池能够提供较好的性能。在不使用线程池时,每当需要执行异步任务时直接new一个线程来运行,而线程的创建和销毁都是需要开销的。线程池里面的线程是可复用的,不需要每次执行异步任务时都重新创建和销毁线程。二是线程池提供了一种资源限制和管理手段,比如可以限制线程的个数,动态新增线程等。每个ThreadPoolExecutor也保留了一些基本的统计数据,比如
·
2022-04-02 12:28
Java并发
—通过ReentrantLock和Semaphore揭秘AQS独占模式和共享模式
大家好,这里是淇妙小屋,一个分享技术,分享生活的博主以下是我的主页,各个主页同步更新优质博客,创作不易,还请大家点波关注掘金主页后续会发布更多MySQL,Redis,并发,JVM,分布式等面试热点知识,以及Java学习路线,面试重点,职业规划,面经等相关博客转载请标明出处!本文将通过ReentrantLock和Semaphore带你看看AQS的独占模式和共享模式是怎么实现的ReentrantLoc
·
2022-04-01 09:37
java后端
Java并发
编程:synchronized
虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。以下是本文的目录大纲:一.什么时候会出现线程安全问题?二.如何解决线程安全问题?三.synchronized同步方法或者同步块若有不正之处,请多多谅解并欢迎批评指正。一.
·
2022-03-30 17:06
Java并发
编程系列之一并发理论基础
Java并发
编程系列之一并发理论基础本系列文章开始
Java并发
编程的进阶篇的学习,为了初学者对多线程的初步使用有基本概念和掌握,前置知识会对一些基础篇的内容进行介绍,以使初学者能够丝滑入戏。
·
2022-03-30 15:54
java多线程并发编程
Java并发
—ThreadLocal
大家好,这里是淇妙小屋,一个分享技术,分享生活的博主以下是我的主页,各个主页同步更新优质博客,创作不易,还请大家点波关注掘金主页知乎主页Segmentfault主页开源中国主页后续会发布更多MySQL,Redis,并发,JVM,分布式等面试热点知识,以及Java学习路线,面试重点,职业规划,面经等相关博客转载请标明出处!0.类图和get()方法调用图1.类关系每个Thread都有一个ThreadL
·
2022-03-30 10:25
java
上一页
43
44
45
46
47
48
49
50
下一页
按字母分类:
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
其他