文章目录进程与线程Java内存模型JMM的三个特性(简单理解)Java的happens-before原则volatile和synchronizedJVMJVM的概述**JVM内部执行运行流程图**1.程序计数器2.Java虚拟机栈3.本地方法栈4.Java堆5.方法区 此篇博客仅为博主的学习摘抄笔记(参考了其他的优秀博文后的总结),并没有其他的商业用途,如有错误,请各位大佬指出,博主必删除整改。
转载
2023-12-15 09:38:40
47阅读
1、概念基于发布订阅者模式处理规范(机制),在JDK中真正叫法是FlowAPI2、背压(backpress)背压指的发布者和订阅者之间的互动订阅者可以告诉发布者自己需要多少数据,可以调节数据流量,不会导致发布者发布数据过多导致数据浪费或压垮订阅者3、Reactive Stream主要接口java.util.concurrent.Flow类中定义的接口:1)、Publisher<T>(发
转载
2024-07-25 20:16:04
36阅读
## 实现Java 9 Reactive Stream
### 介绍
在Java 9中,引入了Reactive Stream的概念,它提供了一种异步处理数据流的机制。本文将指导你如何实现Java 9的Reactive Stream。
### 流程概述
下表展示了实现Java 9 Reactive Stream的整个流程:
| 步骤 | 描述 |
| --- | --- |
| 步骤 1
原创
2023-11-24 07:32:41
48阅读
数式编程对于Reactive Programming很重要,但我不会在这篇文章中深入探讨函数式编程。在这篇文章中,我想看看Java中的整体Reactive发展环境。Reactive Programming vs. Reactive Streams有了这些新的流行语,就很容易对它们的含义感到困惑。反应式编程是一种编程范式,但我不会称之为新的。它实际上已经存在了一段时间。就像面向对象编程,函
转载
2023-10-31 22:28:49
58阅读
我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还是有很多的特性值得关注。期待您能关注我,我将把java 9 写成一系列的文章,大概十篇左右。Java 9的 Reactive Streams是对异步流式编程的一种实现。它基于异步发布和订阅模型,具有非阻塞“背压”数据处理的特点。Non-blocking Bac
转载
2023-10-18 13:37:43
54阅读
[toc] 背景 Stream大家应该都很熟悉了,java8中为所有的集合类都引入了Stream的概念。
原创
2022-09-19 16:39:41
99阅读
Stream大家应该都很熟悉了,java8中为所有的集合类都引入了Stream的概念。优雅的链式操作,流式处理逻辑,相信用过的人都会爱不释手。每个数据流都有一个生产者一个消费者。生产者负责产生数据,而消费者负责消费数据。如果是同步系统
原创
2021-04-20 17:11:51
224阅读
点赞
1 初识Reactive Stream反应式流2015 年反应式流 (Reactive Stream) 规范诞生,定义了如下四个接口:Subscription 接口定义了连接发布者和订阅者的方法Publisher 接口定义了发布者的方法Subscriber 接口定义了订阅者的方法Processor<T,R> 接口定义了处理器Reactive Stream(以下简称RS...
原创
2022-03-14 14:03:18
303阅读
# 实现 "data redis reactive redis stream"
## 概述
本文将介绍如何使用Redis Stream和响应式编程实现"数据Redis响应式Redis Stream"。这个过程可以划分为以下几个步骤:
1. 创建Redis连接
2. 创建Redis Stream
3. 发布数据到Redis Stream
4. 订阅并消费Redis Stream的数据
下面将逐
原创
2023-10-07 09:44:28
62阅读
1 初识Reactive Stream反应式流2015 年反应式流 (Reactive Stream) 规范诞生,定义了如下四个接口:Subscription 接口定义了连接发布者和订阅者的方法Publisher 接口定义了发布者的方法Subscriber 接口定义了订阅者的方法Processor<T,R> 接口定义了处理器Reactive Stream(以下简称RS...
原创
2021-07-08 17:04:40
363阅读
Java 9的 Reactive Streams是对异步流式编程的一种实现。它基于异步发布和订阅模型,具有非阻塞“背压”数据处理的特点。
原创
2021-07-06 10:54:21
584阅读
线程池线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。(一)使用线程池的好处1.降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。 2.提高响应速度 3.提高线程的可管理性(二)线程池的核心思想线程复用。同一个线程可以被重复使用。(三)线程池的创建方式创建线程池的API:java.u
转载
2024-01-27 20:29:53
96阅读
Java运行系统在很多方面依赖于线程,所有的类库设计都考虑到多线程。实际上,Java使用线程来使整个环境异步。这有利于通过防止CPU循环的浪费来减少无效部分。为更好的理解多线程环境的优势可以将它与它的对照物相比较。单线程系统的处理途径是使用一种叫作轮询的事件循环方法。在该模型中,单线程控制在一无限循环中运行,轮询一个事件序列来决定下一步做什么。一旦轮询装置返回信号表明,已准备好读取网络文件,事件循
转载
2023-08-19 21:49:54
56阅读
使用STL流(stream)来简化C++“线程安全”日志记录
作者: winter
流是一种强大的数据处理抽象机制,它允许你调用泛型的读/写函数,不必关心数据从什么地方来、到什么地方去。使用流,同样的代码可从控制台、文件、套接字等地方读取数据。STL通常不是线程安全的,本文提出了如何在线程安全的方式下使用流的方案。
C++将流的强大能力与运算符重载合并到一起,为我们
转载
2024-08-12 11:22:10
107阅读
前言借助于很多强大的框架,现在我们已经很少直接去管理线程,框架的内部都会为我们自动维护一个线程池。例如我们使用最多的okHttp以及他的封装框架Retrofit,线程封装框架RxJava和kotlin协程等等。为了更好地使用这些框架,则必须了解他的实现原理,而了解他的原理,线程池是永远绕不开的话题。线程的创建与切换的成本是比较昂贵的。JVM的线程实现使用的是轻量级进程,也就是一个线程对应一个cpu
目录写在前面一、reactive stream(jdk9)发布-订阅二、异步servlet同步servlet异步servlet三、reactor = jdk8 stream + jdk9 reactive strea
原创
2022-05-10 16:49:51
642阅读
Reactive Programming with Java 8 中文字幕使用Java 8进行反应式编程 中文字幕Reactive Programming with Java 8 Java开发人员面临着许多挑战:复杂的分布式系统,对响应性和性能的高期望,以及比以往更多的用户和数据 反应式编程提供了解决方案 跟随讲师Chris Anatalio,学习如何使用流行的反应框架(如RxJava和Akka)
# Java Stream线程安全
Java 8引入了Stream API,使得处理集合和数组数据变得更加方便和简洁。Stream API提供了丰富的操作方法,如过滤、映射和归约等,可以大大减少代码量并提高程序的可读性。然而,在使用Stream API时,我们需要注意其线程安全性。
## Stream API的概述
Stream是Java 8中的一个重要特性,它可以处理大量的数据集合,并支持
原创
2024-01-26 05:50:32
243阅读
注:本系列文章中用到的jdk版本均为java8相比很多同学在刚接触Java集合的时候,线程安全的List用的一定是Vector。但是现在用到的线程安全的List一般都会用CopyOnWriteArrayList,很少有人再去用Vector了,至于为什么,文章中会具体说到。接下来,我们先来简单分析一下Vector的源码。一、Vector集合源码简析由于本文的重点不是Vector集合,因此只是简单的分
背景Java8的stream接口极大地减少了for循环写法的复杂性,stream提供了map/reduce/collect等一系列聚合接口,还支持并发操作:parallelStream。在爬虫开发过程中,经常会遇到遍历一个很大的集合做重复的操作,这时候如果使用串行执行会相当耗时,因此一般会采用多线程来提速。Java8的paralleStream用fork/join框架提供了并发执行能力。但是如果使
转载
2023-11-22 17:09:38
131阅读