多线程下事务控制

2023-11-13

在这里插入图片描述
我篇文章
大数据批量新增or修改太慢太Low,线程池、CountDownLatch、CompletableFuture完美解决
弊端就是无法实现事务控制。

那么今天他就来啦!

需求

大数据平台去获取数据---->通过对象组装-------> 插入到对应的表当中

需求分析

  1. 效率太慢(多线程)
  2. 多线程下事务控制如何处理(包学会、要有JUC基础)
  3. mybatis下数据缓存副本如何处理(创建新的SqlSession)
  4. 主、子线程如何协调执行(CountDownLatch)
  5. 如何让子线程同步等待(CyclicBarrier)
  6. 回滚属性如何控制(AtomicBoolean)
  7. 对象转换耗时(map- 各种方法调用(耗时)->bean (多线程,同步等待操作)
  • 以上所有多线程都会基于CompletableFuture来完成

需求分析的信息量太大。需要您满满喝。

非多线程处理 sizeFinal=4w

在这里插入图片描述

看效率 (2s)5239ms

在这里插入图片描述
数据
在这里插入图片描述

单线程下的事务我都不用讲了!

多线程登场 对象转换和批量插入 992ms(不到1秒)搞定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看执行效率 2934ms

在这里插入图片描述

数据

在这里插入图片描述

多线程下事务统一回滚演示、业务逻辑 sizeFinal = 40001

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完事!事务控制大功告成!同步等待查询搞定!

源码

视频教程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多线程下事务控制 的相关文章

  • 按键时关闭 ModalWindow

    我希望能够在用户按下某个键 在我的例子中是 ESC 时关闭 ModalWindow 我有一个用于按键的 Javascript 侦听器 它调用取消按钮 ID 的单击事件 jQuery modalWindowInfo closeButtonId
  • 如何让 BlazeDS 忽略属性?

    我有一个 java 类 它有一个带有 getter 和 setter 的字段 以及第二对 getter 和 setter 它们以另一种方式访问 该字段 public class NullAbleId private static final
  • 在 Java 中克隆对象 [3 个问题]

    这样做会调用Asub的clone方法吗 或者Asub深度克隆是否正确 如果没有的话 有没有办法通过这种方法对Asub进行深度克隆呢 abstract class Top extends TopMost protected Object cl
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • 如何在java中将一个数组列表替换为另一个不同大小的数组列表

    我有两个大小不同的数组列表 如何从此替换 ArrayList
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 《利用Python 进行数据分析》第四章:Numpy基础

    对 利用Python 进行数据分析 Wes Mckinney著 一书中的第四章中Numpy基础进行代码实验 原书中采用的是Python2 7 而我采用的Python3 7在Pycharm调试的 因此对书中源代码进行了一定的修改 每步打印结果
  • iOS开发常见错误代码对照表整理

    登录 注册 一样的世界 不一样的时间 随手记点东西 目录视图 摘要视图 订阅 2016软考项目经理实战班
  • 软件测试的缺陷管理与分析,粉丝福利拿走不谢

    软件测试过程中提交缺陷是测试工程师最常做的一件事 也是开发工程师解决问题的依据 所以需要对缺陷进行管理和分析 缺陷管理主要是管理从提交缺陷到解决缺陷这一系列的过程 包括流程中角色的变换 缺陷分析主要对测试过程中所发现的缺陷进行分类分析 分析
  • Java学习笔记(十四)

    Java 中的异常处理 在 Java 中 所有的异常都有一个共同的祖先 java lang 包中的 Throwable 类 Throwable 有两个重要的子类 Exception 异常 和 Error 错 误 二者都是 Java 异常处理
  • OSM数据下载及两种格式转换方法(shp等格式)

    OSM数据下载及两种常用的格式转换方法 1 首先打开OSM官网 https www openstreetmap org 2 先注册账号 再选择左上角的 导出 3 点击 手动选择不同的区域 4 导出即可 5 格式准换可以考虑以下两种方法 一是
  • mysql官网安装步骤_MySQL的安装与配置——详细教程

    免安装版的Mysql MySQL关是一种关系数据库管理系统 所使用的 SQL 语言是用于访问数据库的最常用的 标准化语言 其特点为体积小 速度快 总体拥有成本低 尤其是开放源码这一特点 在 Web 应用方面 MySQL 是最好的 RDBMS
  • 2022年度总结 EXI-小洲

    文章目录 一 第一次自我介绍 二 2022我都干了些什么 我的收获 1 大专顺利毕业 2 后端开发辞职 3 第二次代表学校参加江西省职业院校大数据技能大赛 4 专升本考试 5 参加泰迪杯第五届 数据分析技能赛 6 在csdn开始写博文 7
  • 常见渗透测试靶场系统

    常见靶场 DVWA Dam Vulnerable Web Application DVWA是用PHP Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序 包含了SQL注入 XSS 盲注等常见的一些安全漏洞 链接地址 ht
  • Java中JSON字符串和Java对象的互转

    1 JSON数据和Java对象的相互转换 JSON数据和Java对象的相互转换 JSON解析器 常见的解析器 Jsonlib Gson fastjson jackson 1 Java对象转换JSON 1 使用步骤 1 导入jackson的相
  • python中的库和模块有什么区别_Python中的模块和库之间有什么区别?

    从 The Python Tutorial Modules gt 模块 A module is a file containing Python definitions and statements The file name is the
  • 美团面试官问:写一个你认为最好的单例模式?于是我写了7个

    各位CSDN的朋友 如果喜欢我的文章 记得点个关注 方便以后找到我 由于是刚开始创作 推荐量较低 如果不关注 以后就可能找不到我了 面试题 写一个你认为最好的单例模式 面试考察点 考察目的 单例模式可以考察非常多的基础知识 因此对于这种问题
  • 软考-中级-网络工程师-知识点个人总结(九)

    1 CPU部件 运算器 控制器 寄存器 运算器 算术逻辑运算器 累加器 数据缓冲寄存器 状态条件寄存器 控制器 程序计数器 指令寄存器 指令译码器 时序部件 2 测试依据 测试类型 测试内容 测试依据 黑盒测试 功能测试 对软件的每个功能进
  • 小程序里的alert,Toast

    前言 在小程序中的弹框写法和我们在外面直接用是不一样的 他不支持alert 但是有替代的弹框组件 目录 一 原生小程序 原生小程序api 二 vant中的提示框 官网入口 vant api 一 原生小程序 wx showToast titl
  • C# MSChart 中柱状图和X轴自定义标签

    C 中MSChart 里面曲线 柱状图的样式选择是由 chart Series ChartType SeriesChartType Column 来控制的 SeriesChartType列举出了所有的样式 如果要在X轴上显示自己的文本标签
  • ChatGPT和代码智能

    一 ChatGPT 1 ChatGPT的自我介绍 2 ChatGPT的前世 2 1GPT 3是啥 General Pre Training GPT 即通用预训练语言模型 是一种利用Transformer作为特征抽取器 基于语言模型进行训练的
  • 深入理解Google Cast(三)探寻原理

    如何开发一个receiver application 先来简单说一下这个话题 Receiver本质就是一个网页 由html CSS和jacascript开发 如果要自定义receiver application 需要在 Google Cas
  • LaTeX的斜体,粗体

    参考 LaTeX的斜体 粗体 云 社区 腾讯云 写文章的小伙伴应该知道 在文章中 变量是需要斜体的 那么怎么才是斜体呢 首先 在LATEX中 强调可以以斜体形式展现出来 那么强调命令是如何体现的呢 语法 emph 内容 打开Winedit
  • 【翻译】ASF 法律委员会发布贡献者生成式 AI 指南

    中英文对照版请点击 ASF 法律委员会发布贡献者生成式 AI 指南 中英文对照 查看 除非你在过去一年左右的时间里一直生活在岩石之下 否则你很可能已经听说过很多关于生成式人工智能如何快速发展并正在迅速改变我们所熟知的软件行业的事情 虽然猜测
  • python 利用chinese_calendar 获取上一个工作日日期

    截止文章发布chinese calendar版本为1 8 0 大约在每年的11月份更新次年的节假日新版本 import datetime from chinese calendar import is workday def get per
  • 多线程下事务控制

    我篇文章 大数据批量新增or修改太慢太Low 线程池 CountDownLatch CompletableFuture完美解决 弊端就是无法实现事务控制 那么今天他就来啦 需求 大数据平台去获取数据 gt 通过对象组装 gt 插入到对应的表