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
JMM内存模型
对于Java来说,你可以把JMM看作是Java定义的
并发编程
相关的一组规范,除了抽象了线程和主内存之间的关系之外,其还规定了从Java源代码到CPU可执行指令的这个转化过程要遵守哪些和并发相关的原则和规范
Artisan_w
·
2024-01-05 19:29
Java基础与八股
jvm
java
虚拟线程:Java21
并发编程
的新篇章
虚拟线程:Java
并发编程
的新篇章在现代软件开发中,对并发处理的需求日益增长。随着Java21引入虚拟线程,这一领域即将迎来革新。
半个程序员一个哲学家
·
2024-01-05 18:17
java
java
servlet
jvm
并发编程
:线程同步基础:4、公平锁
目录主要方法1、主程序2、打印队列3、打印任务4、testFair()的执行结果5、testNoFair()的执行结果主要方法newReentrantLock(fair);reentrantlock提供一个参数,当参数为true时,锁为公平锁(即最长等待优先策略)。当参数为false时采用随机策略(默认为false)下面设计2中方式的任务,看看程序输出结果1、主程序packagexyz.jangl
博风
·
2024-01-05 15:43
并发编程
#
线程同步基础
java
开发语言
并发编程
:线程同步基础:6 、在一个锁中使用2种条件
目录1、实现内容2、主程序3、模拟文本文件4、buffer中转(主要代码)5、执行结果1、实现内容创建1个生产者(写入程序)1个消费者(读取程序)和1个buff中转,以及1个模拟文本文件。生产者将文件内容读取后写入到buffer中转中(生产),消费者将buffer内容读取后打印(消费)。当buffer满时,生产者进入等待状态,当buffer为空时,消费者进入等待状态。2、主程序创建1个生产者和3个
博风
·
2024-01-05 15:43
并发编程
#
线程同步基础
java
开发语言
并发编程
:线程同步基础:7、StampedLock DEMO
目录1、主程序2、使用到的model类1、主程序packagexyz.jangle.thread.test.n2_7.stampedlock;importjava.util.concurrent.TimeUnit;importjava.util.concurrent.locks.StampedLock;/****StampedLockDEMO***@authorjangle*@emailjangl
博风
·
2024-01-05 15:43
并发编程
#
线程同步基础
java
开发语言
并发编程
:自定义并发类:6、自定义的fork/join线程类(拓展ForkJoinWorkerThread)
目录ForkJoinWorkerThread简单说明一、主程序二、fork/join线程工厂类三、自定义fork/join线程类四、分治的任务类五、执行结果ForkJoinWorkerThread该类拓展自Thread类,为其增加了新方法,用于子类拓展:onStart()方法,在创建线程时执行。onTermination()方法,结束时进行资源清理。ForkJoinPool类使用ForkJoinW
博风
·
2024-01-05 15:13
并发编程
#
自定义并发类
#
Fork/Join
并发编程
java
并发编程
:并行反应式流:验证流(allMatch)
目录主要内容一、主程序二、辅助类主要内容allMatch:全部匹配anyMatch:任一匹配noneMatch:无一匹配一、主程序packagexyz.jangle.thread.test.n6_9.match;importjava.util.List;importxyz.jangle.thread.test.n6_2.create.Person;importxyz.jangle.thread.t
博风
·
2024-01-05 15:12
并发编程
#
JavaBase
#
Stream
并发编程
stream
java
并发编程
:并行反应式流:编程流(Flow.Subscriber)
目录主要内容一、主程序二、元素类三、订阅者1四、订阅者2五、订阅者3六、执行结果主要内容Flow.Publisher:发布者(提供一个方法来接收Subscriber)Flow.Subscriber:订阅者(提供4个方法,分别用于:订阅完毕时,出现异常时,新元素被请求时,发布者注册订阅者时。)Flow.Subscription:订阅(用于订阅者向发布者请求新元素)一、主程序packagexyz.ja
博风
·
2024-01-05 15:12
并发编程
#
JavaBase
#
Stream
java
并发编程
stream
并发编程
:并发集合:变量句柄(VarHandle)
目录VarHandle一、主程序二、属性类三、对属性进行加法操作四、对属性进行减法操作五、执行结果VarHandleJava9的新特性,它允许获得一个类型参考,以在不同的模式中访问一个变量(实例字段、静态字段或数组元素)。在Java9之前,只能获得原子性变量的行为,现在,可以使用变量句柄来获得相同的功能而不用任何同步机制。(即,你可以操作普通变量时,使其原子性的变化。)一、主程序程序分別对Acco
博风
·
2024-01-05 15:12
并发编程
#
JavaBase
#
并发集合
java
反射
并发编程
并发编程
:并行反应式流:遍历流(forEach,forEachOrdered)
目录方法说明一、主程序二、辅助类三、执行结果方法说明forEach():无法保证动作是有序的应用到流上的。forEachOrdered():需要先使用sorted方法排序,再使用该方法,该方法可以保证动作是有序应用到流上的peek():这是个中间操作,是懒执行的,只有调用结尾操作时,动作才会真正应用到流的消费元素上。一、主程序packagexyz.jangle.thread.test.n6_5.f
博风
·
2024-01-05 15:41
并发编程
#
JavaBase
#
Stream
stream
并发编程
java
并发编程
:并行反应式流:转换流(map、flatMap)
目录主要内容一、主程序二、基础人员信息类三、模拟文件类四、执行结果主要内容使用map返回另外的类型。从Stream转换为IntStream、LongStream、DoubleStream。使用flatMap将嵌套的流串联成一个流。使用分组功能根据生日计算年龄一、主程序packagexyz.jangle.thread.test.n6_7.flatmap;importjava.time.LocalDa
博风
·
2024-01-05 15:41
并发编程
#
JavaBase
#
Stream
stream
java
并发编程
并发编程
:并行反应式流:排序流(sorted、unordered)
主要内容sorted()排序流(Stream中的元素需要实现Comparable接口,否则传入Comparator参数对元素进行排序)unordered()消除相遇顺序(以提升并行流的性能)注:并行流在处理有序数据结构时,性能会有很大影响)forEachOrdered如果使用forEach方法,是不会考虑相遇顺序的,若要输出有序的元素,则使用forEachOrdered方法。一、主程序packag
博风
·
2024-01-05 15:41
并发编程
#
JavaBase
#
Stream
stream
java
并发编程
并发编程
:并行反应式流:收集流(collect)
目录一、主程序二、辅助类三、其他辅助类四、执行结果一、主程序packagexyz.jangle.thread.test.n6_4.collect;importjava.util.ArrayList;importjava.util.List;importjava.util.Map;importjava.util.concurrent.ConcurrentHashMap;importjava.util
博风
·
2024-01-05 15:11
并发编程
#
JavaBase
#
Stream
stream
java
并发编程
并发编程
:执行器:5、延迟运行任务(ScheduledThreadPoolExecutor)
目录scheduledExecutorService.scheduled一、主程序二、任务三、执行结果scheduledExecutorService.scheduled等待执行时间之后,运行任务。(任务,延迟时间,延迟时间单位)ScheduledExecutorService.schedule(Callablecallable,longdelay,TimeUnitunit)一、主程序创建5个任务
博风
·
2024-01-05 15:10
并发编程
#
执行器
并发编程
java
并发编程
:fork/join框架:异步地运行任务(CountedCompleter)
目录CountedCompleter案例说明一、主程序二、统计任务三、执行结果CountedCompleteronCompletion()。使用这个任务类时,可以加入一个完成方法(onCompletion()方法),当程序调用tryComplete方法且没有子任务时,会执行该方法。(即要重写onCompletion方法)getRawResult(),返回执行结果用。当任务调用join()方法时,会
博风
·
2024-01-05 15:10
并发编程
#
JavaBase
#
Fork/Join
java
并发编程
并发编程
:fork/join框架:在任务中抛出异常
目录Java的两种异常ForkJoinTask异常相关的主要方法案例説明一、主程序二、分治任务三、执行结果Java的两种异常受检异常:必须在方法声明中抛出或在方法内捕获,比如IOException和ClassNotFoundException。未受检异常:不必声明或捕获,如NumberFormatException。ForkJoinTask异常相关的主要方法isCompletedAbnormall
博风
·
2024-01-05 15:10
并发编程
#
JavaBase
#
Fork/Join
java
并发编程
并发编程
:CompletableFuture 异步地完成和关联任务
目录CompletableFuture一、主函数二、种子任务三、生成一个数值列表的任务四、计算最大值和最小值的平均值的子任务五、执行结果CompletableFutureCompleteableFuture实现了2个接口,Future、CompletionStage:Future,在将来返回一个结果。CompletionStage,可以在对象完成任务以后,执行额外的异步任务。3种使用Complet
博风
·
2024-01-05 15:40
并发编程
#
JavaBase
java
并发编程
并发编程
:线程同步基础:5、读写锁。ReentrantReadWriteLock
1、主要方法.readLock().lock();获取读锁读锁之间互不干扰。.writeLock().lock();获取写锁写锁可以锁定住读锁和其他写操作。2、主程序packagexyz.jangle.thread.test.n2_5.rwlock;importjava.util.concurrent.TimeUnit;/****读写锁。ReentrantReadWriteLock*@author
博风
·
2024-01-05 15:09
并发编程
#
线程同步基础
java
开发语言
并发&多线程编程-synchronized、Volatile
文章目录@[toc]基础知识
并发编程
的优缺点缺点优点
并发编程
三要素多线程的劣势:Synchronized概述四个特性使用方式1:修饰实例方法方式2:修饰代码块方式3:修饰静态方法具体使用:双重校验锁单例模式
叮咚Zz
·
2024-01-05 14:08
Java入门
java
jvm
开发语言
如何在 Spring Boot 中利用虚拟线程
虚拟线程基于协程实现,提供了更高级别的抽象,使得
并发编程
更为简单和高效。当谈到虚拟线程和SpringBoot结合时,Kotlin的协程库是一个强
IT Talk
·
2024-01-05 12:25
spring
boot
后端
java
【Python程序开发系列】一文教你使用协程处理多任务(案例+源码)
一、协程相关背景知识前文回顾:Python语言高级实战-基于协程的方式来实现异步
并发编程
(附源码和实现效果)【Python程序开发系列】进程、线程、协程?
数据杂坛
·
2024-01-05 12:52
Python高级语法
python
开发语言
并发编程
的原理分析
什么是多线程?多线程是利用cpu的多核心技术,使多线程实现线程的并发执行java四种线程池newCachedThreadPool创建可缓存的线程,底层是依靠SynchronousQueue实现的,创建线程数量几乎没有限制(最大为Integer.MAX_VALUE)。如果长时间没有往线程池提交任务,即如果工作线程空闲了指定时间(默认1分钟),该工作线程自动终止。终止后如果又有了新的任务,则会创建新的
啊楠_0763
·
2024-01-05 11:41
高并发下的计数器实现方式:AtomicLong、LongAdder、LongAccumulator
一、前言计数器是
并发编程
中非常常见的一个需求,例如统计网站的访问量、计算某个操作的执行次数等等。在高并发场景下,如何实现一个线程安全的计数器是一个比较有挑战性的问题。
hope笔记
·
2024-01-05 09:40
Java
java
算法
JAVA——Java后端技术体系韩顺平框架图_韩顺平Java基础学习路线图
网络通信第二阶段:Java高级Java多线程/高并发1.1并发基础互斥同步、非阻塞同步、指令重排、synchronized、volatile1.2线程1.3锁自动锁、偏向锁、可重入锁1.4线程池1.5并发容器1.6
JUC
executor
heart000_1
·
2024-01-05 08:16
经验
java
Java 深入理解 AQS 和 CAS 原理
AQS在源码中被广泛使用,尤其是在
JUC
(JavaUtilConcurrent)中,比如ReentrantLock、Semaphore、CountDownLatch、ThreadPoolExecutor
帅次
·
2024-01-05 00:03
Java
基础
java
数据库
redis
Python高效编程:十招实用技巧大揭秘!
列表推导式和生成器表达式3\.使用装饰器和上下文管理器4\.多线程和多进程5\.函数式编程和Lambda函数6\.内置模块与标准库7\.文件处理与I/O操作8\.调试和性能优化工具9\.文档化与测试10\.
并发编程
与异步技术总结
只存在于虚拟的King
·
2024-01-04 21:10
python
windows
开发语言
信息可视化
学习
计算机网络
并发编程
(已整理,已废弃)
这一块知识,那真是有的啃了。直接先看速成基础,再直接吃掉高频考点。每个小知识点,直接看短视频,浅浅了解,在写下来就是自己的资料。#基础一个进程有多个线程,多个线程共享进程的堆和方法区,每个线程独有PC、VMStack、NMStack##为什么程序计数器是线程私有的?程序计数器主要有俩个作用:字节码解释器通过改变程序计数器来依次读取指令从而实现代码的流程控制;记录当前线程执行的位置。所以程序计数器私
能吧够
·
2024-01-04 20:09
八股文
java
开发语言
Java 学习路线图
Java
并发编程
:包括线程、锁、同步和异步等。Java数据库编程:包括JDBC和ORM框架的使用。JavaWeb开发:包括Servlet、JSP、M
꧁缘法天地间꧂
·
2024-01-04 19:12
java
多线程实践项目
1.马士兵老师的
juc
,讲述了多线程的基本知识线程讲解2.基本的线程演示:主要是对前面几篇讲解的回顾。
海的辽阔
·
2024-01-04 16:50
多线程
java知识
java
开发语言
线程基础知识(三)
前言之前两篇文章介绍了线程的基本概念和锁的基本知识,本文主要是学习同步机制,包括使用synchronized关键字、ReentrantLock等,了解锁的种类,死锁、竞争条件等
并发编程
中常见的问题。
海的辽阔
·
2024-01-04 16:49
多线程
java知识
java
开发语言
Python进程、线程、协程:多任务
并发编程
指南
概要在当今计算机时代,为了提高程序的性能和响应速度,多任务
并发编程
成为了一种必不可少的技术手段。而Python作为一门高级编程语言,提供了多种多任务
并发编程
的方式,包括进程、线程和协程。
Rocky006
·
2024-01-04 14:37
python
开发语言
算法
【
JUC
】Atomic原子类操作以及LongAdder底层详解
Atomic原子操作类ClassesDescriptionflagAtomicBooleanAbooleanvaluethatmaybeupdatedatomically.1AtomicIntegerAnintvaluethatmaybeupdatedatomically.1AtomicIntegerArrayAnintarrayinwhichelementsmaybeupdatedatomica
CtrlCVerProMax
·
2024-01-04 12:44
java
开发语言
【
JUC
】Synchronized及JVM底层原理
Synchronized使用方式Synchronized有三种应用方式作用于实例方法,当前示实例加锁进入同步代码前要获得当前实例的锁,即synchronized普通同步方法,调用指令将会检查方法的ACC_SYNCHRONIZED访问标志是否被设置。如果设置了,执行线程会将先持有monitor然后再执行方法,最后在方法完成(无论是正常完成还是非正常完成)时释放monitor作用于代码块,对括号里面配
CtrlCVerProMax
·
2024-01-04 09:01
jvm
【
JUC
】Volatile关键字+CPU/JVM底层原理
Volatile关键字volatile内存语义1.当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值立即刷新回主内存中。2.当读一个volatile变量时,JMM会把该线程对应的本地内存设置为无效,直接从主内存中读取共享变量所以volatile的写内存语义是直接刷新到主内存中,读的内存语义是直接从主内存中读取。volatile两大特点可见性:是指当一个线程修改了某一个共享
CtrlCVerProMax
·
2024-01-04 08:31
jvm
并行版的std::accumulate
代码来自C++
并发编程
实战#include#include#include#include#include#include//标准库里的accumulate在这个头文件里usingnamespacestd
ouliten
·
2024-01-04 06:16
c++
【
JUC
阻塞队列中常用的四组方法】
文章目录BlockingQueue中的4组不同的方法①add,remove,element②offer,poll,peek③put,take④offset(o,time,unit),poll(time,unit)BlockingQueue中的4组不同的方法抛异常特定值阻塞超时插入add(o)offset(o)put(o)offset(o,time,unit)移除remove()poll()take
学习愚公
·
2024-01-04 02:59
java
开发语言
【
JUC
的四大同步辅助类】
文章目录一、CountDownLatch二、CyclicBarrier三、Semaphore四、Phaser提示:以下是本篇文章正文内容,下面案例可供参考一、CountDownLatchCountDownLatch如同火箭发射,计数只能不断减减,当到达0时即发射场景示例:考场中有多个同学考试,每个同学写完试卷后,将试卷交给老师即可离开,老师需要收齐所有人的试卷后才能离开。代码如下(示例):publ
学习愚公
·
2024-01-04 02:56
java
开发语言
Java多线程(二十五)---ConcurrentLinkedQueue
移步java多线程系列文章ConcurrentLinkedQueue在
并发编程
中,有时候需要使用线程安全的队列。如果要实现一个线程安全的队列有两种方式:一种是使用阻塞算法,另一种是使用非阻塞算法。
凯玲之恋
·
2024-01-04 02:55
Java 基础学习(十八)多线程进阶、网络编程基础
1并发工具包1.1并发工具包概述1.1.1什么是并发工具包Java并发工具包是指java.util.concurrent(简称
JUC
),在Java5版本中添加。
久 一
·
2024-01-04 01:28
Java
开发学习
java
学习
开发语言
运维
linux
Java并发(四):
并发编程
基础
一.线程简介1.什么是线程现代操作系统在运行一个程序时,会为其创建一个进程;一个进程里可以创建多个线程,线程是现代操作系统调度的最小单元。线程拥有各自的计数器、栈和局部变量等属性,能够访问共享的内存变量。2.线程的状态Java线程的生命周期有6种可能的状态:状态名称说明NEW初始状态,线程被构建,但是还没有调用start()方法RUNNABLE运行状态,操作系统中就绪和运行两种状态的统称BLOCK
Jorvi
·
2024-01-04 01:58
《探索Go语言:从入门到精通》
并发性:内置的goroutines和通道(channels)支持高效的
并发编程
。性能优异:编译
java搬砖工-苤-初心不变
·
2024-01-04 00:53
Go
golang
开发语言
后端
1_
并发编程
_线程的基本概念和线程终止及线程问题排查
1.线程的运行状态在Java中,线程的状态一共是6种状态,分别是NEW:初始状态,线程被构建,但是还没有调用start方法RUNNABLED:运行状态,JAVA线程把操作系统中的就绪和运行两种状态统一称为“运行中”BLOCKED:阻塞状态,表示线程进入等待状态,也就是线程因为某种原因放弃了CPU使用权,阻塞也分为几种情况等待阻塞:运行的线程执行wait方法,jvm会把当前线程放入到等待队列同步阻塞
java之书
·
2024-01-03 22:25
java进阶_并发编程
并发编程
程终止及线程问题排查
2_
并发编程
同步锁(synchronized)
并发编程
带来的安全性同步锁(synchronized)1.他的背景当多个线程同时访问,公共共享资源的时候,这时候就会出现线程安全,代码如:publicclassAtomicDemo{inti=0;//排他锁
java之书
·
2024-01-03 22:22
java进阶_并发编程
并发编程同步锁
synchronized
golang学习专栏
GOLANG专栏Golang基础教程Golang基础教程Golang练手算法Golang练手算法Golang设计模式Golang设计模式Golang数据结构和算法Golang数据结构和算法Golang
并发编程
weixin_51551879
·
2024-01-03 20:02
go
RocketMQ源码 NameServer启动流程源码分析
并初始化一些核心组件RouteInfoManager路由信息管理组件、NettyRemotingServer网络通信服务器组件、BrokerHousekeepingService网络通信监听器组件,使用了大量
JUC
虚空小白
·
2024-01-03 20:21
RocketMQ源码
java
rocketmq
volatile三大特性详解
简而言之:JMM可以保证
并发编程
场景中的原子性、可
Ghost俊元
·
2024-01-03 18:12
python
并发编程
——多线程
编程的乐趣在于让程序越来越快,这里将给大家介绍一个种加快程序运行的的编程方式——多线程1著名的全局解释锁(GIL)说起python
并发编程
,就不得不说著名的全局解释锁(GIL)了。
葡萄_ac1c
·
2024-01-03 15:10
Java的常规面试题
Java的面试题主要涉及Java基础知识、
并发编程
、集合原理、JVM原理、I/O与网络编程、设计模式、互联网常用框架等多个领域[6]。一些常见的面试问题包括:1.面向对象的特征:继承、封装和多态性。
空心木偶☜
·
2024-01-03 12:15
java
Java高级面试必问:AQS 到底是什么?
synchronized同步锁,并且效率非常低,因此大神DougLea自己写了一套并发框架,这套框架的核心就在于AbstractQueuedSynchronizer类(即AQS),性能非常高,所以被引入JDK包中,即
JUC
程序员麦冬
·
2024-01-03 12:07
golang
并发编程
-channel
在golang
并发编程
里,经常会听到一句话:不要通过共享内存进行通信,通过通信来共享内存。下面我们会介绍下channel,通过源码的方式去了解channel是怎么工作的。
木子林_
·
2024-01-03 11:19
一起学go
golang
开发语言
后端
上一页
14
15
16
17
18
19
20
21
下一页
按字母分类:
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
其他