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高
并发编程
,面试必问( 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-
(文件I/O操作、密码解锁小demo)
心得体会如果有山的话,就有条越过它的路^^今日所学1.文件的相关操作1.如何创建文件2.I/O流3.文件中写入和读取字节流4.文件中写入和读取字符流5.文件中保存对象6.从文件中读取对象7.将一个文件copy到另外一个2.密码解锁小demo具体操作文件的相关操作如何创建文件//所要创建的文件的完全路径Stringpath="F:/JAVA/DAY12/Day1/src/main/java/Day8
宁晓鸯
·
2024-02-01 02:16
JSON使用
publicstaticvoidmain(String[]args){//1、
java-
>jsonUsersuser=newUsers(1,"李四","男");JSONObjectjsonObject=
AE_
·
2024-02-01 00:46
json
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报错常见总结
❤java报错常见总结1、
java-
报错-java:错误:无效的源发行版:15想着自己参照网上项目搭建一下java,结果新手第一课,环境出问题了先看报错:原因jdk版本过高或不对应解决方法解决方法:1.
林太白
·
2024-01-31 20:52
#
SQL
Linux
数据结构
服务器
PHP
Java
Java后端Mysql
java
开发语言
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---染色法判定二分图(每日一道算法2022.9.4)
注意事项代码中涉及单链表存储邻接图,可以看我之前写的:
java-
单链表数组模拟DFS在这个题里,就是搜到当前节点的所有连通点,不放例子了,感兴趣可以直接自搜题目:给定一个n个点m条边的无向图,图中可能存在重边和自环请你判断这个图是否是二分图第一行包含两个整数
SRestia
·
2024-01-31 18:50
算法
算法
java
图论
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
Java-
阻塞队列
目录1.阻塞队列是什么1.1定义1.2标椎库中的阻塞队列1.3阻塞队列的具体实现2.生产者-消费者模型2.1定义2.2实现序列:多线程-0091.阻塞队列是什么1.1定义阻塞队列:一种特殊的队列,也遵守“先进先出”的原则。阻塞队列是一种线程安全的数据结构,并且具有如下特性:当队列为空时,继续出队列,就会发生阻塞,直到其他的线程往队列中插入元素;当队列为满时,继续入队列,就会发生阻塞,直到其他的线程
加菲猫-siu
·
2024-01-31 12:06
JavaEE
(初阶)
java
开发语言
java-ee
java中的单例模式_
Java-
单例模式详解(图文并茂,简单易懂)
PS:首先我们要先知道什么是单例,为什么要用单例,用的好处是什么等问题来看。1:java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例、饿汉式单例单例模式有以下特点:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。目的单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中
易洪艳
·
2024-01-31 12:04
java中的单例模式
Java-
单例模式
目录前言:1.“饿汉”模式1.1定义1.2实现2.“懒汉”模式2.1定义2.2“懒汉模式”-单线程版2.3“懒汉模式”-多线程版序列:多线程-008前言:单例模式是比较常见的设计模式之一。单例模式能保证某个类在程序中只存在唯一一个实例对象,而不会创建多个实例对象。单例模式的具体的实现方式有很多,最常见的是“饿汉模式”和“懒汉模式”。下边具体介绍两种模式的使用。1.“饿汉”模式1.1定义“饿汉模式”
加菲猫-siu
·
2024-01-31 12:57
JavaEE
(初阶)
单例模式
java-ee
java
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
Java-
并发高频面试题
1.说一下你对Java内存模型(JMM)的理解?其实java内存模型是一种抽象的模型,具体来看可以分为工作内存和主内存。JMM规定所有的变量都会存储再主内存当中,再操作的时候需要从主内存中复制一份到本地内存(cpu内存)再线程内部做计算,然后再回写到主内存本地内存它其实也是JMM的一个抽象概念,并不真实存在。具体来看是包括缓存、写缓冲区、寄存器以及其他的硬件和编译器优化。从上图我们可以看到实际的内
ayu_programer
·
2024-01-31 05:28
面试
Java并发
java
开发语言
并发编程
的两个案例
并发编程
一直是开发过程中非常有挑战力的部分,不仅需要保证数据的正确性,也要考虑这个性能是可以接受的,既然已经考虑并发这个事情,说明它的瞬间流量已经不低了。
coder_sheep
·
2024-01-31 04:15
spring实战
spring
源码
并发
事务
锁
Java-
入门指南(零基础入门)
文章目录第一章、计算机语言及系统概述绪论代码示例第二章、数据类型及变量标识符字符集关键字数据类型进制转换类型转换变量常量运算符与表达式输出进制格式化数组一维数组二维数组容器遍历元素方法(递归)字符串API文档第三章、类的封装、继承和多态类和对象类的封装1构造方法和析构方法2对象的引用和运算3访问控制-隐藏/封装类的访问权限:类成员和函数的访问权限:声明set()和get()方法存取对象的属性4静态
Alleyf
·
2024-01-30 22:30
java
java
jvm
算法
学习笔记: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
开发语言
Java-
代理模式
代理模式1概述由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。代理模式是一种设计模式,它为一个对象提供一个**替身,以控制对这个对象的访问。通过使用代理对象,可以增强额外的功能操作**,即扩展目标对象功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。Java中的代理==按照代理类
小悟空GK
·
2024-01-30 12:11
java
代理模式
Java-
集合(Set接口)
基本介绍1)无序(添加和取出的顺序不一致),没有索引;2)不允许重复元素,最多包含一个null值;3)JDKAPI中Set接口的实现类有:AbstractSet、ConcurrentSkipListSet、CopyOnWriteArraySet、EnumSet、HashSet、JobStateReasons、LinedHashSet、TreeSet;常用方法举例packagecom.pero.se
Neo丶
·
2024-01-30 11:23
java
学习
开发语言
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
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
其他