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
【并发编程】
面试专题——JUC
并发编程
+集合
文章目录面试系列1、Cas(比较并交换)2、AQS(AbstractQueuedSynchronizer)=>抽象队列同步器3、Volatile:3.1、JMM3.2、As-If-Serial原则3.3、Happens-Before原则3.4、volatile原理3.5、作用3.6、原子操作3.7、高速缓存3.8、MESI状态切换3.9、伪共享4、ReentrantLock4.1、原理5、Sync
zhz小白
·
2024-02-01 05:24
架构师-性能优化
java
Java——JUC高
并发编程
,面试必问( CompletableFuture )
12CompletableFuture12.1CompletableFuture简介CompletableFuture在Java里面被用于异步编程,异步通常意味着非阻塞,可以使得我们的任务单独运行在与主线程分离的其他线程中,并且通过回调可以在主线程中得到异步任务的执行状态,是否完成,和是否异常等信息。CompletableFuture实现了Future,CompletionStage接口,实现了F
真真最可爱
·
2024-02-01 05:24
JUC
大厂必备
高并发编程
java
面试
completable
future
并发编程
技术之J.U.C中的并发容器——七个面试知识点
点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!眼尖的朋友可能还看见了此博客页面左上角还有惊喜哟面试题1.Java集合框架以及J.U.C框架中列举List、Set、Map的实现?集合框架ListArrayListLinkedListMapHashMapSetHashSetTreeSetJ.U.C框架ListCopyOnWriteArrayListSetCopyOnWriteArrayS
Java_No01
·
2024-02-01 05:53
面试题
并发编程
并发容器
面试题
Java
程序人生
并发编程
专题——第二章(
并发编程
之Synchronized详解)
日常中我们都会用到Synchronized关键字,但是面试就喜欢问这些,你说不重要吧,面试就不问了,你说重要吧,工作中除了高并发之外,很少能在业务代码中使用到的。所以笔者顶着风险,写下此篇对Synchronized的深入剖析,看完你会有收获!1、抛砖引玉多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。共享:资源
风清扬逍遥子
·
2024-02-01 05:53
并发编程专题
面试
java
synchronized
并发编程
核心——一基本概念
主要内容(镇楼!)1.常见高并发基础:synchronized、volatile、happens-before、CAS、ThreadPoolExecutor、Executor、ThreadLocal、Condition、Semaphore;2.经典并发工具:automic、ABA、ReentrantLock、ReadWriteLock、Adder、Accumulator、StampedLock、C
过期小朋友、
·
2024-02-01 05:53
高并发学习笔记
并发编程
(九)——集合相关面试问题
1、线程安全的集合(单列)怎么选择?List、Set集合,线程安全的有哪些?Vector,有,但是基本不考虑。(synchronized同步方法)Collections.synchronizedList,也可以拿到线程安全的集合(synchronized同步代码块)CopyOnWrite系列。(lock锁)如果数据体量贼大,不考虑读的问题,还需要保证线程安全?答:第一点,不能考虑CopyOnWri
小灰灰-58
·
2024-02-01 05:52
并发编程
java
并发编程
—如何解决可见性和有序性问题
在上一篇
并发编程
之BUG源头我们介绍了导致
并发编程
出现诡异问题的三大源头,即:缓存导致了可见性问题,线程切换带来了原子性问题,编译优带来了有序性问题,这三个Bug源头在所有的编程语言中都会遇到,那么今天就聊聊
瞎胡扯1
·
2024-02-01 05:48
[
并发编程
基础] Java线程的创建方式
文章目录线程的创建方式继承`Thread`实现`Runnable`接口实现`Callable`接口使用`Lambda`使用线程池线程创建相关的`jdk`源码`Thread`类`Runnable`函数接口`Callable`函数接口`executors`线程的创建方式继承Thread创建一个继承Thread类的子类。重写Thread类的run()方法。在run()方法中编写线程要执行的任务。创建Th
程序员三木
·
2024-02-01 03:48
Java探索者之路
java
开发语言
Java-
并发编程
-常见面试题-总结
JMM(Java内存模型)JMM(Java内存模型)相关的问题比较多,也比较重要,于是我单独抽了一篇文章来总结JMM相关的知识点和问题:JMM(Java内存模型)详解。#volatile关键字#如何保证变量的可见性?在Java中,volatile关键字可以保证变量的可见性,如果我们将变量声明为volatile,这就指示JVM,这个变量是共享且不稳定的,每次使用它都到主存中进行读取。volatile
无心六神通
·
2024-02-01 02:13
java
开发语言
Java 并发系列十五 : 两阶段终止模式-如何优雅地终止线程?
前言感谢王宝令老师的
并发编程
课程今天咱们从技术的角度聊聊如何优雅的终止一个线程。
逗逼程序员
·
2024-02-01 00:39
Java
并发编程
之阻塞队列
1.什么是阻塞队列阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作支持阻塞的插入和移除方法。支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元素的线程,直到队列不满。支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列里取元素的线程。阻塞队列就是生产者用来
逍遥白亦
·
2024-01-31 22:24
并发编程
-11线程安全策略之线程封闭
原文链接:https://blog.csdn.net/yangshangwei/article/details/87886079脑图概述在上篇博文
并发编程
-10线程安全策略之不可变对象,我们通过介绍使用线程安全的不可变对象可以保证线程安全
java高并发
·
2024-01-31 22:38
面试官:给我讲讲线程池(上)
面试官:我看简历上写了精通
并发编程
,那么线程池在平时的工作中肯定需要用到吧,你一般是用在什么场景下呢?
码农小张
·
2024-01-31 21:22
Java 高
并发编程
——Reactor模式(多线程)
1多线程版本的Reactor模式演进Reactor和Handler挤在一个单线程中会造成非常严重的性能缺陷,可以使用多线程来对基础的Reactor模式进行改造。多线程Reactor的演进分为两个方面:1、升级Handler。既要使用多线程,又要尽可能高效率,则可以考虑使用线程池。2、升级Reactor。可以考虑引入多个Selector(选择器),提升选择大量通道的能力。总体来说,多线程版本的Rea
geminigoth
·
2024-01-31 18:01
java
java
开发语言
nio
Reactor
netty
Java 高
并发编程
——Reactor模式(多线程)备份
1多线程版本的Reactor模式演进Reactor和Handler挤在一个单线程中会造成非常严重的性能缺陷,可以使用多线程来对基础的Reactor模式进行改造。多线程Reactor的演进分为两个方面:1、升级Handler。既要使用多线程,又要尽可能高效率,则可以考虑使用线程池。2、升级Reactor。可以考虑引入多个Selector(选择器),提升选择大量通道的能力。总体来说,多线程版本的Rea
geminigoth
·
2024-01-31 18:01
java
java
开发语言
nio
Reactor
netty
java-JUC
并发编程
学习笔记03(尚硅谷)
线程间通信例子:对一个值+1-1交替完成,a的值就是1b的值就是0这个过程就是线程间通信Synchronized实现:虚假唤醒问题:我们再添加两个线程。我们发现我们的结果就不对了。我们只需要使用while即可。我们线程通信的最后一步就是防止虚假通信的出现。Lock实现:运行结果:这就是我们使用lock和synchronized两种方式进行线程的通信的基础学习。
抹茶味的西瓜汁
·
2024-01-31 18:20
多线程并发编程
学习
笔记
并发编程
之:Atomic
大家好,我是小黑,一个在互联网苟且偷生的农民工。在开始讲今天的内容之前,先问一个问题,使用int类型做加减操作是不是线程安全的呢?比如i++,++i,i=i+1这样的操作在并发情况下是否会有问题?我们通过运行代码来看一下。publicclassAtomicDemo{publicstaticvoidmain(String[]args)throwsInterruptedException{Datada
小黑说Java
·
2024-01-31 17:31
JUC
并发编程
(九)-- Fork/Join框架
JUC
并发编程
(九)--Fork/Join框架一、什么是Fork/Join1、概述2、特点二、代码实现一、什么是Fork/Join1、概述fork/join框架可以将一个大任务,拆分成一个个的小任务,然后分别计算
书生灬今天不吃饭
·
2024-01-31 17:47
多线程
java
java
多线程
并行计算
并发编程
forkjoin
JUC
并发编程
三(stream流式计算、ForkJoin、异步回调、JMM、Volatile、单例模式)
十三、Stream流式计算(必修掌握)什么是Stream流式计算?大数据:存储+计算存储:集合、MySQL本质就是存储东西的;计算:都应该交给流来操作!常用方法:可以看出参数类型是我们刚刚学过的断点型函数式接口,只有参数返回值类型为boolean等等,大多数的都是函数式接口,所以一定要先学会函数式接口再来学stream流解析:u就是个形式参数,是从stream里面得出的泛型推荐使用stream流,
无极的移动代码
·
2024-01-31 17:46
Java基础学习
java
java-ee
spring
maven
tomcat
JUC
并发编程
(8)--- ForkJoin与Stream并行流
ForkJoin讲解ForkJoin是在JDK1.7出来的,在大数据环境下,并行执行任务,提高效率。原理:用的是分支合并的思想,将大任务拆成多个小任务并行,然后再合并成原来任务ForkJoin的特点:工作窃取假设有线程A和线程B同时执行队列中的任务,线程B先执行完,然后线程B不能闲着,就会窃取线程A对应队列后面没有执行完的来执行,这样就提高效率。就是自己执行完,帮别人执行。我们来举个求和案例,在I
小样x
·
2024-01-31 17:16
JUC并发编程
java
多线程
JUC
并发编程
-单例模式、深入理解CAS、原子引用
18.玩转单例模式饿汉式、DCL懒汉式单例模式,单线程模式下是安全的的,但是多线程模式下,不安全1)饿汉式/***饿汉式单例*/publicclassHungry{/***可能会浪费空间*/privatebyte[]data1=newbyte[1024*1024];privatebyte[]data2=newbyte[1024*1024];privatebyte[]data3=newbyte[10
666-LBJ-666
·
2024-01-31 17:44
JUC并发编程
单例模式
JUC
java并发编程
JUC
并发编程
-异步回调、JMM、volatile
15.异步回调Future设计的初衷:对将来的某个事件结果进行建模!其实就是前端-->发送ajax异步请求给后端但是我们平时都使用CompletableFuture1)异步调用:CompletableFuture没有返回值的异步回调publicstaticvoidmain(String[]args)throwsExecutionException,InterruptedException{//发起
666-LBJ-666
·
2024-01-31 17:14
JUC并发编程
JUC
多线程
并发编程
JuC
并发编程
-ForkJoin与异步回调
1、ForkJoin特点:工作窃取里边维护的是双端队列packagecom.zkw.JUC
并发编程
.forkjoin;importjava.util.concurrent.RecursiveTask;publicclassForkJoinDemonextendsRecursiveTask
小白程序猿一枚
·
2024-01-31 17:43
java
JUC
并发编程
-四大函数式接口、Stream 流式计算、ForkJoin并行执行任务
12.四大函数式接口新时代的程序员:lambda表达式、链式编程、函数式接口、Stream流式计算函数式接口:只有一个方法的接口,可以有一些默认的方法如:Runnable接口函数1)Function函数型接口publicclassFunctionDemo{publicstaticvoidmain(String[]args){Functionfunction=(str)->{returnstr;};
666-LBJ-666
·
2024-01-31 17:12
JUC并发编程
多线程
并发编程
JUC
Java基础-多线程(3)
所以
并发编程
的目标是充分的利用处理器的每一个核,以达到最高的处理性能。36.线程和进程的区别?简而言之,进程是程序运行和资源分配的基本
C乖
·
2024-01-31 16:51
Python
并发编程
的概念和重要性
并发编程
是一种编程方式,它允许在单台处理器上同时处理多个任务或操作。这些任务可以在单个处理器上通过时间分片技术实现,也可以在多核或多处理器系统上真正地并行执行。
轻编程
·
2024-01-31 10:05
python
java
数据库
开发语言
Reactor简述
1、概念Reactor是一个计算机编程模式,它在
并发编程
和网络编程中用于处理大量并发输入事件。
xixingzhe2
·
2024-01-31 10:42
架构设计
java
网络
数据库
java
漫画图解 Go
并发编程
之:Channel
当谈到并发时,许多编程语言都采用共享内存/状态模型。然而,Go通过实现CommunicatingSequentialProcesses(CSP)而与众不同。在CSP中,程序由不共享状态的并行处理器组成;相反,他们使用Channel来沟通和同步他们的行动。因此,对于有兴趣采用Go的开发人员来说,理解Channel的工作原理变得至关重要。在本文中,我将使用地鼠经营他们想象中的咖啡馆的令人愉快的类比来说
夜莺云原生监控
·
2024-01-31 10:41
SRETalk
golang
Go
并发编程
并发编程
的12条规范
1.获取单例对象需要保证线程安全我们在获取单例对象的时候,要确保线性安全哈。比如双重检查锁定(Double-CheckedLocking)的单例模式,就是一个经典案例,你在获取单实例对象的时候,就需要保证线性安全,比如加synchronized确保现象安全,代码如下:public class Singleton { private volatile static Singleton inst
BUG指挥官
·
2024-01-31 06:54
单例模式
java
并发编程
的两个案例
并发编程
一直是开发过程中非常有挑战力的部分,不仅需要保证数据的正确性,也要考虑这个性能是可以接受的,既然已经考虑并发这个事情,说明它的瞬间流量已经不低了。
coder_sheep
·
2024-01-31 04:15
spring实战
spring
源码
并发
事务
锁
学习笔记:Java
并发编程
(补)CompletableFuture
学习视频:https://www.bilibili.com/video/BV1ar4y1x727参考书籍:《实战JAVA高并发程序设计》葛一鸣著系列目录学习笔记:Java
并发编程
①_基础知识入门学习笔记
YanZhaoHanWei_555
·
2024-01-30 22:32
#
JUC
Java
基础学习
java
学习
c++
并发编程
实战笔记
std::thread::hardware_concurrency();可以用来获得当前CPU最多一次性可以并发多少个线程,但是结果仅供参考可以用get_id()函数来获得线程id可以使用std::once_flag+std::call_once来保护只需要同步一次的代码参考:3.3.1可以通过std::shared_mutex来实现c++版本的读写锁,需要c++14的支持。例:#include/
onedayday-tao
·
2024-01-30 19:44
c++
笔记
开发语言
并发编程
之常用锁与AQS
目录一、常用锁(除Synchronized)LongAddrReentrantLockCountDownLatchCyclicBarrierPhaserReadWriteLockSemaphoreExchangerLockSupport二、AQS三、ThreadLocal一、常用锁(除Synchronized)LongAddr首先声明LongAddr不为锁,他是一个原子操作类,类似于AtomicL
、风筝
·
2024-01-30 19:39
多线程
java
并发编程
之AQS初探
Java
并发编程
核心在于java.concurrent.util包,而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这个行为的抽象就是基于AbstractQueuedSynchronizer
lianzhongzhang
·
2024-01-30 19:38
并发编程
并发编程
java
并发编程
之 AQS & ReentrantLock
1、AQSAQS:AbstractQueuedSynchronizer,抽象队列同步器。在Java并发包中提供的锁(java.util.concurrent.locks),都是利用AQS来实现的。AQS底层其实也是利用CAS来共同实现锁的机制。AQS内部核心的参数:state:用于记录锁的同步状态,AQS底层的核心字段。但是,在ReentrantLock、ReentrantReadWriteRea
Howinfun
·
2024-01-30 19:08
Java并发编程
并发编程
AQS
JAVA
并发编程
之AQS锁
一、多线程问题产生多线程问题主要有以下几点:1.多线程环境2.有临界资源3.有多个线程在同一时刻操作临界资源具体产生的问题:1.可见性问题(volatile:被volatile修饰的共享数据会导致变量副本每次访问时强制清空!从而保证每次访问的都是主内存中的最新值!)2.原子性问题(CAS、加锁)3.指令重排二、ReentrantLock1.简介ReentrantLock是一种基于AQS框架的应用实
学习中的程序媛~
·
2024-01-30 19:37
java
开发语言
并发
并发编程
【2】
01.什么是僵尸进程,孤儿进程僵尸进程是指在进程已经终止但是其父进程尚未终止信息(退出状态码)的情况下。保留在进程表中的进程。僵尸进程不占用实际的系统资源,但会占用一个进程ID,并且会在系统中产生垃圾。孤儿是指在网络中失去父进程(创建它的进程)却继续运行的子进程。通常是由于父进程异常退出或未正确管理子进程而导致。它就会并由init进程来处理孤儿进程的退出状态。在从进程表中删除孤儿进程的记录。02.
m0_58310590
·
2024-01-30 17:12
服务器
linux
网络
【Java和Python对比超详细介绍】
Java和Python对比超详细介绍1.介绍2.语言的设计哲学和语法2.1Java2.2Python3.性能4.类型系统5.
并发编程
6.用途7.生态系统和社区支持8.开发工具和环境9.学习曲线10.跨平台能力
程序员不想敲代码啊
·
2024-01-30 15:53
python
java
开发语言
JUC
并发编程
详解
1、什么是JUC?java.util.concurrnetjava.util.concurrent.atomicjava.util.concurrent.locks2、进程和线程进程:一个程序的实例线程:是一个进程的实体,CPU调度和分配的基本单位java默认有两个线程,main方法和GC开启线程的方式:Thread、Runnable、CallableJava本质是无法开启线程的,是调用本地方法(
编程码农张
·
2024-01-30 13:24
Java中的四种线程池详解及使用场景
前言在Java
并发编程
中,JDK提供了一套强大的线程池工具类java.util.concurrent.ThreadPoolExecutor以及它的四个便捷工厂方法,这四种线程池分别对应不同的使用场景和特性
李少兄
·
2024-01-30 13:10
Java
java
开发语言
并发无锁的艺术
前言在
并发编程
中,多线程的共享资源的修改往往会造成严重的线程安全问题,解决这种问题简单暴力的方式就是加锁,加锁的方式使用简单易理解,但常常会因为阻塞导致性能问题有没有可能做到无锁还保证线程安全呐?
pq217
·
2024-01-30 10:24
java
并发编程
(十一)LockSupport之park/unpark
一、简介1.1主要方法Park/UnPark方法是LockSupport当中的方法。其常用方法有如下:park():暂停当前线程。park(Objectblocker):暂停当前线程,并指定负责此线程停放的同步对像。parkNanos(longnanos):暂停当前线程,指定等待的最大纳秒数。parkNanos(Objectblocker,longnanos):暂停当前线程,指定等待的最大纳秒数和
我犟不过你
·
2024-01-30 10:33
java 多线程编程面试_Java 多线程
并发编程
面试笔录一览
知识体系图:1、线程是什么?线程是进程中独立运行的子任务。2、创建线程的方式方式一:将类声明为Thread的子类。该子类应重写Thread类的run方法方式二:声明实现Runnable接口的类。该类然后实现run方法推荐方式二,因为接口方式比继承方式更灵活,也减少程序间的耦合。3、获取当前线程信息?Thread.currentThread()4、线程的分类线程分为守护线程、用户线程。线程初始化默认
INONNTANNC
·
2024-01-30 06:08
java
多线程编程面试
Java学习之多线程并发
并发编程
可以使得程序的处理速度得到极大的提高。但是在得到提高的同时,并发也会带来一些问题,当并行执行的任务彼此开始互相干涉时,时机的并发问题就会接踵而至。了解并发可以使我们
原来是肖某人
·
2024-01-30 06:33
多线程并发
队列
并发
多线程
锁
java
Java多线程
并发编程
一览笔录
知识体系图:1、线程是什么?线程是进程中独立运行的子任务。2、创建线程的方式方式一:将类声明为Thread的子类。该子类应重写Thread类的run方法方式二:声明实现Runnable接口的类。该类然后实现run方法推荐方式二,因为接口方式比继承方式更灵活,也减少程序间的耦合。3、获取当前线程信息?Thread.currentThread()4、线程的分类线程分为守护线程、用户线程。线程初始化默认
花2不谢
·
2024-01-30 06:33
Java
多线程
并发
java
Java 多线程,
并发编程
一、创建线程有几种方式看了好多博文,都说三种或者三种之上的,其实本质只有两种,有Java源码Thread类的上面的注释为证:Therearetwowaystocreateanewthreadofexecution.OneistodeclareaclasstobeasubclassofThread....Theotherwaytocreateathreadistodeclareaclassthati
AllenC6
·
2024-01-30 06:00
Java并发
java
开发语言
多线程
Java多线程-
并发编程
概述
本文转自https://my.oschina.net/langxSpirit/blog/8252901、线程是什么?线程是进程中独立运行的子任务。2、创建线程的方式方式一:将类声明为Thread的子类。该子类应重写Thread类的run方法方式二:声明实现Runnable接口的类。该类然后实现run方法推荐方式二,因为接口方式比继承方式更灵活,也减少程序间的耦合。3、获取当前线程信息?Thread
端木尋歡
·
2024-01-30 06:58
JAVA
java
多线程
并发编程
63页!嵩山版Java开发手册分享
它涵盖了代码规范、异常处理、
并发编程
、日志管理、安全等多个方面,旨在帮助开发
我是才辰
·
2024-01-30 02:36
java
【代码随想录-链表】移除链表元素
推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2024-01-29 23:11
s6
算法与数据结构
链表
数据结构
如何搭建Nextcloud云存储网盘并实现无公网ip访问本地文件【内网穿透】
推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2024-01-29 19:13
s20
cpolar
tcp/ip
网络协议
网络
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
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
其他