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-并发编程】
并发编程
-3.CAS&Atomic原子操作详解
学习内容重点:1.什么是原子操作2.如何实现原子操作3.CAS实现原子操作的三大问题4.Jdk中相关原子操作类的使用5.LongAdder详解什么是原子操作?如何实现原子操作?什么是原子性?在工作中经常使用事务,事务的一大特性就是原子性(事务具有ACID四大特性),一个事务包含多个操作,这些操作要么全部执行,要么全都不执行。这些原子操作类其实是使用当前的处理器基本都支持CAS的指令,比如Intel
飞越沧海的蝴蝶
·
2023-12-23 10:13
Java架构学习之旅
java
算法
开发语言
优雅校验:Guava Preconditions使用指南
它不仅增强了集合处理、缓存机制、
并发编程
等方面,还提供了一个非常强大的工具类:Preconditions,尤其在参数验证和错误检测方面,它的效率和简洁性是Java标准库所难以比拟的。
宋小黑
·
2023-12-23 06:17
Guava实战手册
guava
java
Preconditions
JUC
并发编程
07——Java中的并发工具类
目录一.等待多线程完成的CountDownLatchjoinCountDownLatch二.同步屏障CyclicBarrier三.CyclicBarrier和CountDownLatch的区别四.控制并发线程数的Semaphore应用场景Semaphore实现原理一.等待多线程完成的CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。join假如有这样一
汤姆&Tom
·
2023-12-23 06:05
JUC并发编程
java
开发语言
JUC
并发编程
05——volatile
一.volatile的前世今生Java语言规范中对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁要更加方便。如果一个字段被声明成volatile,Java线程内存模型确保所有线程看到这个变量的值是一致的。这句话该怎么理解呢?别急,为了更好的理解这个概
汤姆&Tom
·
2023-12-23 06:04
JUC并发编程
java
jvm
开发语言
JUC
并发编程
06——Synchronized与锁升级
一.Java对象内存布局和对象头在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(InstanceData)和对文填充(Padding)。对象内部结构分为:对象头、实例数据、对齐填充(保证8个字节的倍数)。对象头分为对象标记(markOop)和类元信息(klassOop),类元信息存储的是指向该对象类元数据(klass)的首地址。对象头在64位
汤姆&Tom
·
2023-12-23 06:04
JUC并发编程
java
开发语言
JUC
并发编程
08——原子操作类
目录一.原子更新基本类型类实现原理二.原子更新数组三.原子更新引用类型四.原子更新字段类Java从JDK1.5开始提供了J.U.C下的atomic包,atomic包提供了一系列的操作简单,性能高效,并能保证线程安全的类去更新基本类型变量,数组元素,引用类型以及更新对象中的字段类型。atomic包里的类基本都是使用Unsafe实现的包装类,使用Unsafe提供的三个CAS方法结合死循环实现的,也就是
汤姆&Tom
·
2023-12-23 06:27
JUC并发编程
java
开发语言
Java-
序列化-反序列化
ThanksJava基础学习总结——Java对象的序列化和反序列化java序列化反序列化原理Java序列化的高级认识Java中的关键字transientJava中的序列化对象是存储在内存中,但如果我们想把对象持久化存到硬盘上该怎么做呢?在Java中,可以使用序列化:Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成
CokeNello
·
2023-12-23 05:07
自定义数据库连接池 VS mybatis内部的PooledDataSource
参照《
并发编程
的艺术》4.4.2设计自己的数据库连接池,首先一个空闲列表,一个活动连接链表,初始的时候,都是空的,如果为空,DriverManager获得connection.放入到活动链表中,然后完成事物
sadamu0912
·
2023-12-23 04:15
并发编程
-看完这篇,所有Java
并发编程
的问题你都能应对自如
1、synchronized修饰普通方法和静态方法的区别?什么是可见性?对象锁是用于对象实例方法,或者一个对象实例上的,类锁是用于类的静态方法或者一个类的class对象上的。我们知道,类的对象实例可以有很多个,但是每个类只有一个class对象,所以不同对象实例的对象锁是互不干扰的,但是每个类只有一个类锁。但是有一点必须注意的是,其实类锁只是一个概念上的东西,并不是真实存在的,类锁其实锁的是每个类的
程序员阿远
·
2023-12-23 03:26
Java-
底层原理-编译原理
Java-
底层原理-编译原理系列文章目录
Java-
底层原理-编译原理
Java-
底层原理-javac源码笔记
Java-
底层原理-类加载机制
Java-
底层原理-clinit和init转载声明:本文大量内容系转载自以下文章
迷路剑客
·
2023-12-23 02:08
java
jvm
java
【
并发编程
篇】常用的赋值类(必会)CountDownLatch,CyclicBarrier,Semaphore
文章目录CountDownLatchCyclicBarrierSemaphoreCountDownLatch减法计数器CountDownLatch是Java多线程并发包(java.util.concurrent)中的一个工具类,它可以用来协调多个线程之间的同步操作。CountDownLatch的作用是允许一个或多个线程等待其他线程完成操作后再继续执行。它通过一个计数器来实现,初始化时指定计数器的数
在下小吉.
·
2023-12-22 15:47
并发编程
python
java
开发语言
揭秘
并发编程
的奥秘
揭秘
并发编程
的奥秘个人简介前言多线程对于Java的意义1.提高程序性能:2提高用户体验:3支持并发处理:4资源共享和同步:5简化编程模型:为什么Java工程师必须掌握多线程Java多线程使用方式如何学好
以山河作礼。
·
2023-12-22 12:11
活动文章
java
开发语言
Java
并发编程
中的线程池
7
并发编程
中的线程池自定义线程池packagecom.rainsun.d7_thread_pool;importlombok.extern.slf4j.Slf4j;importjava.util.ArrayDeque
xiongyuqing
·
2023-12-22 08:56
Java
java
开发语言
Java
并发编程
中的无锁实现
5
并发编程
中的无锁实现CAS与voltailepublicclassd1_AccountCASimplementsAccount{privateAtomicIntegerbalance;publicd1
xiongyuqing
·
2023-12-22 08:25
Java
java
jvm
开发语言
Java
并发编程
中的不可变设计
6
并发编程
中的不可变设计日期转换的问题SimpleDateFormat不是线程安全的,可以用synchronized加锁解决问题,但带来的是性能上的损失不可变思想如果一个对象在不能够修改其内部状态(属性
xiongyuqing
·
2023-12-22 08:25
Java
java
开发语言
面试官:JVM为什么用元空间代替永久代?
最近整理了一波电子书籍资料,包含《EffectiveJava中文版第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java
并发编程
实战》等等获取方式:关注公众号并回复电子书领取
飞乐鸟
·
2023-12-22 03:17
面试干货
jvm
【源码解析】聊聊ReentrantReadWriteLock是如何实现的读写锁
为什么需要读写锁在
并发编程
领域,有多线程进行提升整体性能,但是却引入了共享数据安全性问题。基本就是无锁编程下的单线程操作,有互斥同步锁操作,但是性能不高,并且同一时刻只有一个线程可以操作资源类。
qxlxi
·
2023-12-22 03:17
#
并发编程
#
源码解析
java
Java最全面试题专题---4、
并发编程
(3)
线程池Executors类创建四种常见线程池什么是线程池?有哪几种创建方式?池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁
斑马工
·
2023-12-22 00:18
Java最全面试题专题
java
开发语言
并发编程
多线程
线程池
2019-02-20 Java
并发编程
实战
目录编辑对本书的赞誉译者序前言第1章简介1.1并发简史1.2线程的优势1.2.1发挥多处理器的强大能力1.2.2建模的简单性1.2.3异步事件的简化处理1.2.4响应更灵敏的用户界面1.3线程带来的风险1.3.1安全性问题1.3.2活跃性问题1.3.3性能问题1.4线程无处不在第一部分基础知识第2章线程安全性2.1什么是线程安全性2.2原子性2.2.1竞态条件2.2.2示例:延迟初始化中的竞态条件
向日葵666666
·
2023-12-21 22:36
java中线程相关的面试题
为什么
并发编程
会导致线程不安全?
WF_WINLION
·
2023-12-21 20:41
面试
java
线程
java
【Java 并发】CountDownLatch 介绍
在
并发编程
中,经常会遇到需要等待某些任务完成后再执行其他任务的情况。这就涉及到线程之间的协作和同步。
lcn29
·
2023-12-21 18:29
#
Java
并发
Java
Java
并发
第2章线程同步精要
并发编程
有两种模型,一种是messagepassing,另一种是sharedmemory。在分布式系统中,运行在多台机器上的多个进程的并行编程方式只有messagepassing。
Junior888
·
2023-12-21 17:28
并发编程
基础知识三 异步,非阻塞和 IO 复用
参考通俗讲解异步,非阻塞和IO复用一、异步,非阻塞为了更加形象的说明同步异步、阻塞非阻塞,我们以小明去买奶茶为例。1.1同步与异步同步与异步的重点在消息通知的方式上,也就是调用结果通知的方式。同步:当一个同步调用发出去后,调用者要一直等待调用结果的通知后,才能进行后续的执行。异步:当一个异步调用发出去后,调用者不能立即得到调用结果的返回。异步调用,要想获得结果,一般有两种方式:(1)主动轮询异步调
合肥黑
·
2023-12-21 16:47
【算法Hot100系列】删除链表的倒数第 N 个结点
推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,
并发编程
redis,kafka,Spring,微服务,Netty等常用开发工具系列
檀越剑指大厂
·
2023-12-21 16:55
s6
算法与数据结构
算法
链表
数据结构
Java-
基于okhttp请求SSE接口流式返回
最近在开发跟大模型相关的业务,需要用java去请求大模型的对话接口并支持流式的返回,变用到了sse接口。首先介绍一下什么是SSE,SSE(Server-sentEvents)是WebSocket的一种轻量代替方案,使用HTTP协议。严格地说,HTTP协议是没有办法做服务器推送的,但是当服务器向客户端声明接下来要发送流信息时,客户端就会保持连接打开,SSE使用的就是这种原理。一、SSE能做什么?理论
萧老板
·
2023-12-21 16:22
java
okhttp
python
gpt
chatgpt
第二篇 Java
并发编程
之Thread API介绍
在Java中,一般创建线程的两种方式是:继承Thread类和实现Runnable接口。本篇将介绍一下Thread类中相关的API的作用以及用法。1.currentThread方法publicstaticnativeThreadcurrentThread();currentThread()方法返回的是对当前正在执行线程对象的引用2.sleep方法publicstaticnativevoidsleep
秋慕云
·
2023-12-21 15:29
TCP流套接字编程
文章目录TCP流套接字编程ServerSocketAPISocketAPI示例:回显服务器服务器端客户端利用线程池实现
并发编程
TCP流套接字编程TCP和UDP差距是很大的,在数据传输方面,UDP是面向数据报的
十二分精神~
·
2023-12-21 14:50
tcp/ip
网络协议
网络
7-4
JAVA-
水仙花数(Java for PTA)
水仙花数是指一个N位正整数(7≥N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。要求编写程序,计算所有N位水仙花数。输入格式:输入一个正整数N(3≤N≤7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:在这里给出一组输入。例如:3输出样例:在这里给出相应的输出。例如:153370371407importjava.util.Scanner;
H._
·
2023-12-21 13:11
PTA-Java基础题
算法
java
Spring Security使用详解(超详细)
SpringSecurity使用详解(基本用法)-邓维-
java-
博客园(cnblogs.com)
瓶盖子io
·
2023-12-21 13:53
Spring
Security
Java
并发编程
第12讲——cancelAcquire()流程详解及acquire方法总结
上篇文章介绍了AQS的设计思想以及独占式获取和释放同步状态的源码分析,但是还不够,一是感觉有点零零散散,二是里面还有很多细节没介绍到——比如cancelAcquire()方法(重点),迫于篇幅原因,今天就把它放到这篇文章里,继续深入AQS!一、acquire方法源码的分析在上一篇文章,感兴趣的同学可以去看一下,我的建议是两篇文章一起看。1.1几个状态(重点)ps:waitStatus>0说明等待状
橡 皮 人
·
2023-12-21 12:12
Java并发编程
java
AQS
acquire流程
cancelAcquire图解
【C++入门到精通】 原子性操作库(atomic) C++11 [ C++入门 ]
阅读导航引言一、原子性操作库简介二、原子变量1.原子类型2.原子类型函数3.使用示例三、总结温馨提示引言当谈及
并发编程
时,确保数据的安全性和一致性是至关重要的。
Yawesh_best
·
2023-12-21 12:22
C++
c++
java
jvm
[Java并发]-----第1章
并发编程
线程基础
透彻理解Java
并发编程
1.什么是线程进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位.线程则是进程的一个执行路径,一个进程中至少一个线程.进程中的多个线程共享进程的资源.操作系统在分配资源时是把资源分配给进程的
Benjamin_Lee
·
2023-12-21 11:51
java
并发编程
实战第二版pdf,附赠复习资料
正文MyBatis的整体架构分为三层,分别是基础支持层、核心处理层和接口层,如下图所示。基础支持层反射模块该模块对Java原生的反射进行了良好的封装,提供了更加简洁易用的API,方便上层使调用,并且对反射操作进行了一系列优化,例如缓存了类的元数据,提高了反射操作的性能。类型转换模块类型转换模块提供了两个主要功能,一个功能是别名机制,MyBatis为了简化配置文件提供了别名机制;另一个功能是实现JD
阿里Java后端
·
2023-12-21 11:20
程序员
java
面试
经验分享
【
并发编程
篇】四大函数式接口
文章目录函数型接口⭐Function使用lambda表达式进行简化⭐Predicate使用lambda表达式进行简化⭐Consumer使用lambda表达式进行简化⭐Supplier使用lambda表达式进行简化函数型接口⭐Functionjava中的java.util.function.Function接口代表一个函数,该函数接受一个参数类型为T的输入,并返回一个结果类型为R的输出。在函数式编程
在下小吉.
·
2023-12-21 08:58
并发编程
开发语言
并发编程
Java 内存模型(JMM)探寻原理,深度讲解
目录一.前言二.为什么会有内存模型2.1.硬件内存架构2.2.缓存一致性问题2.3.处理器优化和指令重排序三.
并发编程
的问题四.Java内存模型(JMM)4.1.Java运行时内存区域与硬件内存的关系4.2
流华追梦^_^
·
2023-12-21 05:36
Java
java
JMM
Java内存模型
内存模型
原子性
可见性
有序性
Linux | 多线程
前言本文主要介绍多线程基础知识,以及使用多线程技术进行
并发编程
;最后会介绍生产者消费者模型;一、线程基本认识1、什么是线程如果你是科班出生,你肯定听过线程相关概念;但是你可能没有真正搞懂什么是线程;在认识线程之前
是奈思呀
·
2023-12-21 00:31
Linux
开发语言
linux
Mybatis-plus可视化自动生成代码,提高开发效率神器!
最近整理了一波电子书籍资料,包含《EffectiveJava中文版第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java
并发编程
实战》等等获取方式:关注公众号并回复电子书领取
飞乐鸟
·
2023-12-20 20:05
mybatis
mybatis
Java
并发编程
(七)-异步编程-FutureTask
目录一、异步编程1、FutureTask应用&源码分析1.1、FutureTask应用1.2、FutureTask源码分析1.2.1、run方法1.2.2、set&setException方法1.2.3、cancel方法1.2.4、get方法1.2.5、finishCompletion方法一、异步编程1、FutureTask应用&源码分析FutureTask是一个可以取消异步任务的类。Future
杀神lwz
·
2023-12-20 14:53
java线程
java
java编程入门到精通看什么书,详细说明
成长笔记1.Java基础复盘2.Web编程初探3.SSM从入门到精通4.SpringBoot快速上手这套面试手册的组成内容主要有以上3大主题,5个主要模块,35个小板块长按扫码,领取资料1-3年高工1.
并发编程
进阶
阳阳2013哈哈
·
2023-12-20 14:22
Java
学习教程
java
面试
开发语言
深入解析线程安全的Hashtable实现
分段锁2.3.CAS操作3.线程安全策略3.1.同步方法3.2.分段锁优化3.3.乐观锁和CAS4.性能优化4.1.负载均衡4.2.惰性加载5.注意事项5.1.死锁和性能问题5.2.内存开销6.结论引言在
并发编程
中
达芬奇要当程序员
·
2023-12-20 13:50
数据结构
哈希算法
hash
table
java
JAVA
并发编程
之一:进程和线程
1并发历史早期的计算机中并没有操作系统,它们只从头到尾执行一个程序,并且这个程序能访问所有的计算机资源。对于这种环境,每次只能运行一个程序,对于昂贵且稀有的计算机资源来说是一种极大的浪费。操作系统的出现使得计算机每次能运行多个程序,并且不同的程序都在单独的进程中运行。操作系统为每个独立执行的进程分配各种资源,包括:内存,文件句柄以及安全证书等。如果需要通信的话,在不同进程之间可通过通信机制来交换数
星星哇
·
2023-12-20 11:36
java
并发编程
三 共享内存的问题和synchronized解决方案
文章目录共享带来的问题synchronized解决方案方法上的synchronized共享带来的问题小故事老王(操作系统)有一个功能强大的算盘(CPU),现在想把它租出去,赚一点外快小南、小女(线程)来使用这个算盘来进行一些计算,并按照时间给老王支付费用但小南不能一天24小时使用算盘,他经常要小憩一会(sleep),又或是去吃饭上厕所(阻塞io操作),有时还需要一根烟,没烟时思路全无(wait)这
过去日记
·
2023-12-20 10:43
java并发编程
java
开发语言
后端
java
并发编程
四 synchronized锁对象分析和变量线程线程安全分析
文章目录线程八锁变量的线程安全分析线程八锁所谓的“线程八锁”,其实就是考察synchronized锁住的是哪个对象情况1:12或21@Slf4j(topic="c.Number")classNumber{publicsynchronizedvoida(){log.debug("1");}publicsynchronizedvoidb(){log.debug("2");}}publicstaticv
过去日记
·
2023-12-20 10:13
java并发编程
java
笔记
后端
并发编程
深入理解JMM&并发三大特性(一)
JMM属于整个Java
并发编程
中最难的部分也是最重要的部分(JAVA多线程通信模型——共享内存模型),涉及的理论知识比较多,从三个维度去分析:1)JAVA层面2)JVM层面3)硬件层面这部分理解并发的三大特性
Curtain_call
·
2023-12-20 09:04
Java
并发编程
学习笔记
JUC
并发编程
第一章、进程与线程1、进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载到CPU,数据加载到内存。在指令运行过程中还需要用到磁盘、网络等设备。
以我牛马为核
·
2023-12-20 03:06
学习笔记
java
多协程、多核、信道控制三大因素决定GO程序高并发,多核并行执行
当Go语言引入了goroutine概念后,执行输入和输出过程的函数,在调用前使用关键字go,让该函数能以goroutine方式执行,利用函数具有的多值输出特点,引入信道的通信机制,使得
并发编程
变得非常简单
jzzzzzzzsa
·
2023-12-19 18:42
JaveEE:手动实现定时器精讲
前言在Java
并发编程
学习中,定时器是必不可少的环节。我们知道线程的调度是随机的,但是有的时候我们就是需要它有序一些,此时的定时器就可以很好的解决这个问题。
天纵云裳
·
2023-12-19 18:05
开发语言
java
《C++
并发编程
》《初识C++并发》
一、基础概念介绍1.1什么是并发并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。1.2什么是并行当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Paralle
zwh1298454060
·
2023-12-19 18:20
#
《C++并发编程实战》
c++
《C++
并发编程
》《线程管理》
文章目录一、线程的基本管控1.1发起线程1.2等待线程完成1.3出现异常情况下等待1.4后台运行线程二、向线程函数传递参数三、转移线程归属权四、运行时选择线程数量五、识别线程六、总结七、参考书籍一、线程的基本管控1.1发起线程线程通过构建std::thread对象而启动,该对象指明线程要运行的任务。举一个简单的栗子:#include#include//线程函数voidthreadFunction(
zwh1298454060
·
2023-12-19 18:19
#
《C++并发编程实战》
c++
开发语言
并发编程
之:JUC并发控制工具
大家好,我是小黑,一个在互联网苟且偷生的农民工。在上一期我们讲了Thread.join()方法和CountDownLatch,这两者都可以做到等待一个线程执行完毕之后当前线程继续执行,并且CountDownLatch要更优秀,能满足同时等待多个线程执行,我们通过查看源码知道CountDownLatch是通过AQS实现的。那么在java.util.concurrent包中除了像CountDownLa
小黑说Java
·
2023-12-19 14:52
上一页
17
18
19
20
21
22
23
24
下一页
按字母分类:
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
其他