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并发
-JUC(上)
AbstractQueuedSynchronizer,也就是大家常说的AQS,再到其中使用的CAS,Wait,Park,最后到操作系统层面的Mutex,Condition,希望通过这篇文章,大家能够对整个
Java
·
2021-04-11 19:00
java
Java并发
-JUC(下)
并发容器JDK提供的并发容器大部分在java。util.concurrent包中。比较常用的有:ConcurrentHashMap:线程安全版HashMap。ConcurrentLinkedQueue:线程安全版LinkedList。ConcurrentSkipListMap:线程安全版跳表Map。CopyOnWriteArrayList:线程安全版List,但是不是通过锁实现。在读多写少的场合性
·
2021-04-11 19:26
java
Java并发
-JUC(中)
接上节内容ThreadPool在多线程开发中,如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一来就会大大降低系统的效率。可能出现服务器在为每个请求创建新线程和销毁线程上花费的时间和消耗的系统资源要比处理实际的用户请求的时间和资源更多。为了复用线程减少资源浪费,我们就需要使用到线程池。线程池提供了一种限制和管理线程资源的方案。通过线程池我们可以达到如下目的:降
·
2021-04-11 19:50
java
Java并发
——Synchronized关键字和锁升级,详细分析偏向锁和轻量级锁的升级
一、Synchronized使用场景Synchronized是一个同步关键字,在某些多线程场景下,如果不进行同步会导致数据不安全,而Synchronized关键字就是用于代码同步。什么情况下会数据不安全呢,要满足两个条件:一是数据共享(临界资源),二是多线程同时访问并改变该数据。例如:publicclassAccountingSyncimplementsRunnable{//共享资源(临界资源)s
LastRay
·
2021-04-11 14:49
Java并发
篇
一、Java如何开启线程?怎么保证线程安全?首先在回答这个问题之前,我们要知道什么是线程,什么是进程,以及他们之间的区别是什么。线程和进程的区别:进程是操作系统进行资源分配的最小单元,线程是操作系统进行任务分配的最小单元,线程隶属于进程。那么Java当中如何开启线程?一般有四种方法1、继承Thread类,重新run方法2、实现Runnable接口,实现run方法3、实现Callable接口,实现c
lamdaxu
·
2021-04-11 09:31
Java学习笔记
java
【2021最新版】Java多线程&并发面试题总结(108道题含答案解析)
文章目录
JAVA并发
知识库1、Java中实现多线程有几种方法?2、继承Thread类3、实现Runnable接口。
Java小叮当
·
2021-04-09 16:33
Java面试
Java多线程
并发编程
Java编程
多线程面试题
并发编程面试题
1.到底什么是线程安全和线程安全的实现
在《
Java并发
编程实战》一书中给出如下定义:一个对象是否需要是线程安全的,取决于它是否被多个线程访问。这只和对象在程序中是以何种方式被使用的有关,和对象本身具体是做什么的无关。
·
2021-04-09 00:34
java
1.到底什么是线程安全和线程安全的实现
在《
Java并发
编程实战》一书中给出如下定义:一个对象是否需要是线程安全的,取决于它是否被多个线程访问。这只和对象在程序中是以何种方式被使用的有关,和对象本身具体是做什么的无关。
·
2021-04-09 00:22
java
java并发
编程JUC第十二篇:AtomicInteger原子整型
AtomicInteger类底层存储一个int值,并提供方法对该int值进行原子操作。AtomicInteger作为java.util.concurrent.atomic包的一部分,从Java1.5开始引入。1.AtomicInteger基础用法通过下文的AtomicInteger构造方法,可以创建一个AtomicInteger对象,该对象的初始值默认为0。AtomicInteger提供get和s
·
2021-04-08 08:27
spring
java并发
编程JUC第十二篇:AtomicInteger原子整型
AtomicInteger类底层存储一个int值,并提供方法对该int值进行原子操作。AtomicInteger作为java.util.concurrent.atomic包的一部分,从Java1.5开始引入。1.AtomicInteger基础用法通过下文的AtomicInteger构造方法,可以创建一个AtomicInteger对象,该对象的初始值默认为0。AtomicInteger提供get和s
·
2021-04-08 08:25
spring
写给小白看的LockSupport
前言
Java并发
编程系列第三篇LockSupport,上一篇Synchronized文章中有提过,不推荐读者们使用Object的wait、notify、notifyAll等函数做多线程间的通信协同,使用
程序猿阿星
·
2021-04-06 13:09
java多线程
Java基础
锁
并发编程
多线程
Java
java并发
编程JUC第十一篇:如何在线程之间进行对等数据交换
java.util.concurrent.Exchanger可以用来进行数据交换,或者被称为“数据交换器”。两个线程可以使用Exchanger交换数据,下图用来说明Exchanger的作用在下面的代码中首先我们定义了一个Exchanger,用于数据交换然后定义了两个线程对象bookExchanger1和bookExchanger2,两个线程都持有Exchanger交换器对象用于数据交换两个线程中的
·
2021-04-06 08:27
spring
java并发
编程JUC第十一篇:如何在线程之间进行对等数据交换
java.util.concurrent.Exchanger可以用来进行数据交换,或者被称为“数据交换器”。两个线程可以使用Exchanger交换数据,下图用来说明Exchanger的作用在下面的代码中首先我们定义了一个Exchanger,用于数据交换然后定义了两个线程对象bookExchanger1和bookExchanger2,两个线程都持有Exchanger交换器对象用于数据交换两个线程中的
·
2021-04-06 08:26
spring
Java并发
——基石篇(下)
Objectwait和notify的实现机制JavaObject类提供了一个基于native实现的wait和notify线程间通讯的方式,这是除了synchronized之外的另外一块独立的并发基础部分,有关wait和notify·的部分内容,我们在上面分析monitor的exit的时候已经有一些涉及,但是并没有过多的深入,留下了不少的疑问,本小节会详细分析。wait实现ObjectMonitor
·
2021-04-04 21:56
java
Java并发
——基石篇(中)
Synchronized实现机制synchronized是
Java并发
同步开发的基本技术,是Java语言层面提供的线程间同步手段。
·
2021-04-04 21:56
java
Java并发
——基石篇(上)
概要并行是这个时代的主旋律,也是很多现代操作系统需要提供的必备功能,在过去摩尔定律催生下,单个CPU核心计算的速度越来越快。但是随着产业的发展,单个CPU核心的计算上限已经难以突破,传统的加强单核的思维模式已经不能满足需求。在古代,人们需要强大的战马来驱动战车,为了能够使得战斗力越来越强,人们驯化了越来越强劲的战马,但是单匹马的力量始终是有限的,因此人们发明了多马并驾的战车结构。同样地,在现代计算
·
2021-04-04 21:26
java
Java并发
——基石篇(中)
Synchronized实现机制synchronized是
Java并发
同步开发的基本技术,是Java语言层面提供的线程间同步手段。
·
2021-04-04 21:12
java
Java并发
——基石篇(上)
概要并行是这个时代的主旋律,也是很多现代操作系统需要提供的必备功能,在过去摩尔定律催生下,单个CPU核心计算的速度越来越快。但是随着产业的发展,单个CPU核心的计算上限已经难以突破,传统的加强单核的思维模式已经不能满足需求。在古代,人们需要强大的战马来驱动战车,为了能够使得战斗力越来越强,人们驯化了越来越强劲的战马,但是单匹马的力量始终是有限的,因此人们发明了多马并驾的战车结构。同样地,在现代计算
·
2021-04-04 21:12
java
Java并发
——基石篇(下)
Objectwait和notify的实现机制JavaObject类提供了一个基于native实现的wait和notify线程间通讯的方式,这是除了synchronized之外的另外一块独立的并发基础部分,有关wait和notify·的部分内容,我们在上面分析monitor的exit的时候已经有一些涉及,但是并没有过多的深入,留下了不少的疑问,本小节会详细分析。wait实现ObjectMonitor
·
2021-04-04 21:40
java
【
Java并发
编程实战】(五):死锁问题
引言在上一篇文章中,我们用Account.class作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,例如账户A转账户B、账户C转账户D这两个转账操作现实世界里是可以并行的,但是在这个方案里却被串行化了,这样的话,性能太差。试想互联网支付盛行的当下,8亿网民每人每天一笔交易,每天就是8亿笔交易;每笔交易都对应着一次转账操作,8亿笔交易就是8亿次
·
2021-04-01 22:23
java多线程线程安全并发编程
【
Java并发
编程实战】(四):互斥锁——解决原子问题和保护多个资源
@[TOC]引言在第一篇文章中我们提到,一个或者多个操作在CPU执行的过程中不被中断的特性,称为“原子性”。理解这个特性有助于你分析并发编程Bug出现的原因,例如利用它可以分析出long型变量在32位机器上读写可能出现的诡异Bug,明明已经把变量成功写入内存,重新读出来却不是自己写入的。那原子性问题到底该如何解决呢?你已经知道,原子性问题的源头是线程切换,如果能够禁用线程切换那不就能解决这个问题了
·
2021-04-01 22:23
java多线程线程安全并发编程
【
Java并发
编程实战】(三):Java内存模型——看Java如何解决可见性和有序性问题
引言上一节我们讲到在并发场景中,因可见性、原子性、有序性导致的问题常常会违背我们的直觉,从而成为并发编程的Bug之源。这三者在编程领域属于共性问题,所有的编程语言都会遇到,Java在诞生之初就支持多线程,自然也有针对这三者的技术方案,而且在编程语言领域处于领先地位。理解Java解决并发问题的解决方案,对于理解其他语言的解决方案有触类旁通的效果。那我们就先来聊聊如何解决其中的可见性和有序性导致的问题
·
2021-04-01 22:23
java多线程线程安全并发编程
【
Java并发
编程实战】(二):并发编程Bug的源头——可见性、原子性和有序性问题
引言如果你细心观察的话,你会发现,不管是哪一门编程语言,并发类的知识都是在高级篇里。换句话说,这块知识点其实对于程序员来说,是比较进阶的知识。我自己这么多年学习过来,也确实觉得并发是比较难的,因为它会涉及到很多的底层知识,比如若你对操作系统相关的知识一无所知的话,那去理解一些原理就会费些力气。这是我们整个专栏的第一篇文章,我说这些话的意思是如果你在中间遇到自己没想通的问题,可以去查阅资料,也可以在
·
2021-04-01 22:22
java多线程并发编程
【
Java并发
编程实战】(一):如何才能学好并发编程
引言并发编程并不是一门相对独立的学科,而是一个综合学科。并发编程相关的概念和技术看上非常零散,相关度也很低,总给你一种这样的感觉:我已经学习很多相关技术了,可还是搞不定并发编程。那如何才能学习好并发编程呢?其实很简单,只要你能从两个方面突破一下就可以了。一个是“跳出来,看全景”,另一个是“钻进去,看本质”。跳出来,看全景我们先说“跳出来”。你应该也知道,学习最忌讳的就是“盲人摸象”,只看到局部,而
·
2021-04-01 22:22
java多线程并发编程
面试常问集锦——多线程部分
JAVA并发
十二连招,你能接住吗?https://mp.weixin.qq.com/s?
SunAlwaysOnline
·
2021-04-01 22:39
#
多线程
JAVA
面试经历
java
面试
多线程
【
Java并发
编程实战】(五):死锁问题
引言在上一篇文章中,我们用Account.class作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,例如账户A转账户B、账户C转账户D这两个转账操作现实世界里是可以并行的,但是在这个方案里却被串行化了,这样的话,性能太差。试想互联网支付盛行的当下,8亿网民每人每天一笔交易,每天就是8亿笔交易;每笔交易都对应着一次转账操作,8亿笔交易就是8亿次
·
2021-04-01 22:03
java多线程线程安全并发编程
【
Java并发
编程实战】(四):互斥锁——解决原子问题和保护多个资源
@[TOC]引言在第一篇文章中我们提到,一个或者多个操作在CPU执行的过程中不被中断的特性,称为“原子性”。理解这个特性有助于你分析并发编程Bug出现的原因,例如利用它可以分析出long型变量在32位机器上读写可能出现的诡异Bug,明明已经把变量成功写入内存,重新读出来却不是自己写入的。那原子性问题到底该如何解决呢?你已经知道,原子性问题的源头是线程切换,如果能够禁用线程切换那不就能解决这个问题了
·
2021-04-01 22:03
java多线程线程安全并发编程
【
Java并发
编程实战】(三):Java内存模型——看Java如何解决可见性和有序性问题
引言上一节我们讲到在并发场景中,因可见性、原子性、有序性导致的问题常常会违背我们的直觉,从而成为并发编程的Bug之源。这三者在编程领域属于共性问题,所有的编程语言都会遇到,Java在诞生之初就支持多线程,自然也有针对这三者的技术方案,而且在编程语言领域处于领先地位。理解Java解决并发问题的解决方案,对于理解其他语言的解决方案有触类旁通的效果。那我们就先来聊聊如何解决其中的可见性和有序性导致的问题
·
2021-04-01 22:03
java多线程线程安全并发编程
【
Java并发
编程实战】(二):并发编程Bug的源头——可见性、原子性和有序性问题
引言如果你细心观察的话,你会发现,不管是哪一门编程语言,并发类的知识都是在高级篇里。换句话说,这块知识点其实对于程序员来说,是比较进阶的知识。我自己这么多年学习过来,也确实觉得并发是比较难的,因为它会涉及到很多的底层知识,比如若你对操作系统相关的知识一无所知的话,那去理解一些原理就会费些力气。这是我们整个专栏的第一篇文章,我说这些话的意思是如果你在中间遇到自己没想通的问题,可以去查阅资料,也可以在
·
2021-04-01 22:02
java多线程并发编程
【
Java并发
编程实战】(一):如何才能学好并发编程
引言并发编程并不是一门相对独立的学科,而是一个综合学科。并发编程相关的概念和技术看上非常零散,相关度也很低,总给你一种这样的感觉:我已经学习很多相关技术了,可还是搞不定并发编程。那如何才能学习好并发编程呢?其实很简单,只要你能从两个方面突破一下就可以了。一个是“跳出来,看全景”,另一个是“钻进去,看本质”。跳出来,看全景我们先说“跳出来”。你应该也知道,学习最忌讳的就是“盲人摸象”,只看到局部,而
·
2021-04-01 22:02
java多线程并发编程
Java学习_多线程编程(上)(很全,上篇四万多字)
篇幅太长,阅读不易,关于线程活性故障、线程通信、线程池的知识点会在下篇涉及[JAVA学习_多线程编程(下)]链接参考资料以下均为视频,参考的文章会在摘要后贴上链接黑马【多线程】知识黑马程序员全面深入学习
java
头还没秃我还能学
·
2021-04-01 16:12
java学习
多线程
java
锁
volatile
线程安全
java并发
编程JUC第十篇:CyclicBarrier线程同步
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue
·
2021-04-01 07:20
spring
java并发
编程JUC第十篇:CyclicBarrier线程同步
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue
·
2021-04-01 07:50
spring
java并发
编程JUC第九篇:CountDownLatch线程同步
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue
·
2021-03-31 09:44
spring
java并发
编程工具类JUC第八篇:ConcurrentHashMap
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue
·
2021-03-31 09:13
spring
java并发
编程工具类JUC第七篇:BlockingDeque双端阻塞队列
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue
·
2021-03-31 09:13
spring
java并发
编程JUC第九篇:CountDownLatch线程同步
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue
·
2021-03-31 09:02
spring
java并发
编程工具类JUC第八篇:ConcurrentHashMap
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue
·
2021-03-30 11:42
spring
《我要进大厂》系列之ReentrantLock与synchronized两种锁的区别
在大厂面试中,特别是第一轮技术面试中,锁是一个非常高频的主题,在JDK中主要提供了两种方式:JUC(
JAVA并发
框架)中的ReentrantLock与synchronized关键字。
中间件兴趣圈
·
2021-03-29 23:43
面试指南
锁
公平锁
非公平锁
可重入
java并发
编程工具类JUC第七篇:BlockingDeque双端阻塞队列
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue
·
2021-03-29 07:19
spring
java并发
编程工具类JUC第六篇:SynchronousQueue同步队列
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue
·
2021-03-27 12:01
spring
java并发
编程工具类JUC第六篇:SynchronousQueue同步队列
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue
·
2021-03-27 12:15
spring
BAT面试多线程最常问的一个问题:谈谈你对Synchronized的理解?
前言
Java并发
编程系列第二篇Synchronized,文章风格依然是图文并茂,通俗易懂,本文带读者们由浅入深理解Synchronized,让读者们也能与面试官疯狂对线。
程序猿阿星
·
2021-03-26 12:33
Java基础
java多线程
java并发
编程工具类JUC第五篇:PriorityBlockingQueue优先级队列
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue,本文为系列文章第五篇
·
2021-03-26 08:26
spring
java并发
编程工具类JUC第四篇:LinkedBlockingQueue链表队列
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue。
·
2021-03-26 08:54
spring
java并发
编程工具类JUC第三篇:DelayQueue延时队列
DelayQueue是BlockingQueue接口的实现类,它根据"延时时间"来确定队列内的元素的处理优先级(即根据队列元素的“延时时间”进行排序)。另一层含义是只有那些超过“延时时间”的元素才能从队列里面被拿出来进行处理。DelayQueue队列将阻止其元素对象从队列中被取出,直到达到为元素对象设置的延迟时间。DelayQueue在队列的头部存储最近过期的元素,如果队列内没有元素过期,使用po
·
2021-03-26 08:23
spring
java并发
编程工具类JUC第二篇:ArrayBlockingQueue
类ArrayBlockingQueue是BlockingQueue接口的实现类,它是有界的阻塞队列,内部使用数组存储队列元素。这里的“有界”是指存储容量存在上限,不能无限存储元素。在同一时间内存储容量存在着一个上限值,这个上限制在初始实例化的时候指定,之后便不能修改了。ArrayBlockingQueue内部采用FIFO(FirstIn,FirstOut)先进先出的方法实现队列数据的存取,队首的元
·
2021-03-26 08:23
spring
java并发
编程工具类JUC第五篇:PriorityBlockingQueue优先级队列
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue,本文为系列文章第五篇
·
2021-03-26 08:22
spring
java并发
编程工具类JUC第四篇:LinkedBlockingQueue链表队列
在之前的文章中已经为大家介绍了
java并发
编程的工具:BlockingQueue接口、ArrayBlockingQueue、DelayQueue。
·
2021-03-25 11:52
spring
java并发
编程工具类JUC第三篇:DelayQueue延时队列
DelayQueue是BlockingQueue接口的实现类,它根据"延时时间"来确定队列内的元素的处理优先级(即根据队列元素的“延时时间”进行排序)。另一层含义是只有那些超过“延时时间”的元素才能从队列里面被拿出来进行处理。DelayQueue队列将阻止其元素对象从队列中被取出,直到达到为元素对象设置的延迟时间。DelayQueue在队列的头部存储最近过期的元素,如果队列内没有元素过期,使用po
·
2021-03-24 10:35
spring
上一页
51
52
53
54
55
56
57
58
下一页
按字母分类:
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
其他