自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C.

正在学习的菜鸟...github:https://github.com/cckevincyh gitee:https://gitee.com/cckevincyh

  • 博客(738)
  • 资源 (28)
  • 收藏
  • 关注

原创 【Spring Cloud 基础设施搭建系列】Spring Cloud 基础设施搭建系列文章目录

文章目录说明Spring Cloud 基础设施搭建系列目录项目源代码说明首先声明一下,本人并不是什么大神,刚工作一年多,工作中也还没有涉及到Spring Cloud还有微服务这些。这一系列只是自己自学之后简单搭建的,并且这里记录一下自己学习的过程。我参考了很多的资料,也十分的感谢那些提供帮助的文章。当然这个项目中还存在很多的不足和还没有加入的模块,如果我的代码或者文章中有什么问题,也欢迎指出,...

2019-11-10 22:52:19 553

原创 XLSX + LuckySheet + LuckyExcel + Web Worker实现前端的excel预览

XLSX + LuckySheet + LuckyExcel + Web Worker实现前端的excel预览

2024-07-03 10:12:54 527

原创 Transactional outbox pattern

正常情况下(不发生消息发送到Broker失败的情况),只要我们是按照顺序往outbox table存入数据,并且Message Relay使用单线程从outbox table顺序拉取消息,并把消息投递到Message Broker,那么在正常情况下(不发生消息发送到Broker失败的情况)我们是能保证消息是顺序发送到Broker的。通过在数据库中创建 Outbox 表,将要发送的消息记录在 Outbox 表中,然后在事务提交之后,异步地读取 Outbox 表中的消息并将其发布到消息队列中。

2023-07-03 20:42:16 514

原创 RestTemplate使用HttpClient连接池

为什么要用连接池?因为使用它可以有效降低延迟和系统开销。如果不采用连接池,每当我们发起http请求时,都需要重新发起Tcp三次握手建立链接,请求结束时还需要四次挥手释放链接。而Tcp链接的建立和释放是有时间和系统开销的。另外每次发起请求时,需要分配一个端口号,请求完毕后在进行回收。使用链接池则可以复用已经建立好的链接,一定程度的避免了建立和释放链接的时间开销。

2023-03-03 16:37:55 3620 3

原创 使用react-grid-layout和react-full-screen实现一个可自定义和全屏展示的dashboard页面

接下来我们需要做的功能如下:1. 我们可以全局锁定和解锁dashboard中的图表组件,让其不允许拖动和缩放。2. 懒加载对应的图表组件显示到dashboard中3. 实时保存当前界面的布局到localstorage,以便下次进入页面可以展示上一次编辑的dashboard布局4. 实现dashboard全屏展示,这里会用到`react-full-screen`

2022-12-06 17:39:12 2033 2

原创 使用react-sizeme解决react-grid-layout中侧栏(抽屉)展开或隐藏时不会自适应容器大小的问题

当我们侧栏(抽屉)移动时并不会自动帮我们调整`react-grid-layout`中元素的占位,也就是在最右边我们可以看到,当侧栏(抽屉)隐藏的时候,最右边是有空白的,并不会自适应填充。

2022-11-29 21:04:16 1382 9

原创 使用react-grid-layout和echarts-for-react实现一个支持拖拽的自定义响应式dashboard页面

在前端工作中,我们会经常遇到自定义dashboard页这样的需求。然后我想做一个能够让用户可以在面板上自由的拖拽,固定(不允许拖拽),拖拉改变大小、新增,删除组件。组件可以是各种echarts图形,也可是各种数据表格。通过各个组件的拖拽组合,从而让用户自定义需要的dashboard页。我们直接先来看最终的效果。

2022-11-28 20:07:07 2555 1

原创 使用react-draggable和react-resizable实现Ant Design Modal的拖动和拖拽改变宽度

Ant Design 提供的Modal是不支持拖动还有侧边拖拽改变宽度的,基于这一点我们需要自定义一个我们自己的Modal组件,来实现拖动和拖拽改变宽度。还有一点需要注意的是,需要设置一下modal最小的宽度,防止拖拽改变宽度太小导致modal里面的内容样式错乱。包裹一下就可以了,网上案例很多,不具体讲。唯一比较特别的是,如果你直接包裹在。还有一点需要注意的是拖动的时候需要设置一下不能超出当前可视窗口。实现拖拽改变宽度也不难,也是引入。外面是无法实现拖拽的,而是要在。来实现modal的拖动,使用。

2022-11-21 20:24:09 3960

原创 react-window构造的虚拟列表使用react-resizable动态调整宽度和使用react-drag-listview拖拽变换列位置的问题

构造虚拟列表来解决大型的数据列表渲染的性能问题。虚拟列表的优点是不用全部加载出所有的DOM节点, 而是按需显示思路的一种实现,即虚拟列表是一种根据滚动容器元素的可视区域来渲染长列表数据中某一个部分数据的技术。然而在实际开发中发现,对于普通Table(非虚拟列表)是生效的,能够动态的改变列的宽度和位置,然而对虚拟列表却无法变化。会缓存列表的行高和列框, 所以当我们调整了列的宽度,但是却没有清楚掉这些缓存,就会导致虚拟列表不会渲染出来最新的样式。去动态调整table(虚拟列表)的列宽度,还有使用。

2022-11-21 20:06:27 2924 1

原创 Java并发编程实战之互斥锁

一谈到互斥,我们很自然就会想到了锁。首先我们把一段需要互斥执行的代码称为临界区。线程在进入临界区之前,首先尝试加锁 `lock()`,如果成功,则进入临界区,此时我们称这个线程持有锁;否则呢就等待,直到持有锁的线程解锁;持有锁的线程执行完临界区的代码后,执行解锁 `unlock()`。

2022-10-24 08:00:00 2060

原创 前端错误监控的简单设计与实现

为了让我们的开发人员能够发现用户在前端操作出现的一些前端错误,能够尽早发现和定位问题。我们暂定是使用邮件的形式来通知我们的开发人员。而且我们并不要求所有的前端错误都能够实时全量的通知给开发人员,因为当前端有问题的时候,可能前端报错特别多,会导致上报的数据会很多,从而造成发送很多邮件,而实际上我们只是想关心发生了什么错误,而不是关心发生了多少错误。所以我们会对监控上班和邮件通知进行限制,保证不会有瞬间过多的监控数据请求到后端。

2022-10-12 16:56:17 869

原创 React 错误处理和日志记录的思考与设计

在平时的工作,js报错是比较常见的一个情景,当出现错误的时候,用户上报问题我们往往需要去定位问题的原因,但是因为错误存在于用户的客户端,所以我们没法很好的拿到错误的信息,所以如果当我们前端js出现异常的时候能及时上报的话,那我们的问题就比较好解决了。我们先不考虑使用现成的平台,因为我们想要的功能比较简单,而且部署一套监控平台公司不一定允许,所以可以考虑在自己项目中进行处理,不引用第三方的平台。,网上比较多推荐的是:sentry,它对异常数据的收集和分析更加完善,如果公司有条件私有化部署的话比较推荐使用。

2022-09-07 18:00:00 1158

原创 Java分布式定时任务场景的思考与设计

其实还是具体业务场景具体分析,并没有哪一套设计就是能解决一切问题的"银弹"。当有分布式定时任务的场景,就可以结合实际场景来考虑一下以上的方案。

2022-09-06 21:00:00 1126

原创 Spring Data JPA想要学得好,缓存机制掌握好

本文章主要对JPA进行简单的介绍,主要重点在于JPA的一级缓存机制,会带领大家浅读一下具体实现的Hibernate中的源码。所以虽然我们标题是《Spring Data JPA想要学得好,缓存机制掌握好》,但实际上这里我们在探讨的是具体实现——Hibernate的缓存首先和都是接口。然后是继承于的。所以可以理解为是对JPA持久化上下文交互的抽象,而 接口是 Hibernate 向应用程序提供的操纵对数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载Java 对象的方法。而Hibernate是JP

2022-09-01 16:46:52 2984

原创 你不会还搞不清楚Spring Data JPA的关联关系注解如何使用吧?

应该不止我一个人搞不清楚Spring Data JPA的关联关系注解吧?就是平时我们是用的,还有还有相关的注解。参考:Multiplicity in Entity Relationships可能平时只是会用,但是具体怎么设置以及注解上每个属性的作用可能还不是了解的特别清楚,以及关联关系怎么去维护等等。所以这篇文章就是带你深入了解Spring Data JPA的关联关系注解的使用。文章主要关注在,还有还有相关的注解的使用。平时工作基本用的比较少(反正在我工作中目前还没有怎么使用过),所以本篇博文就不会关注的使

2022-08-02 10:20:58 1185

原创 Java并发编程实战基础概要

Java线程之间的通信由Java内存模型(JMM)控制。JMM定义了线程和主内存之间的抽象关系在内存里,Java内存模型规定了所有的变量都存储在主内存(物理内存)中,每条线程还有自己的工作内存,线程对变量的所有操作都必须在工作内存中进行。不同的线程无法访问其他线程的工作内存里的内容。我们可以使用下图来表示在逻辑上线程、主内存、工作内存的三者交互关系。额外的延伸知识,从JVM的角度来看java运行时的内存区域,来对应我们Java内存模型前面我们都理解了缓存导致了可见性问题,编译优化导致了有序性问题。.....

2022-07-20 13:54:15 572

原创 可配置化的表达式解析以及构造JSON查询数据库实体数据的设计和实现

之前的博文《使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据》和《使用Druid SQL Parser解析SQL》中都讲到了目前业务上的需求就是以前老系统是通过配置SQL去抽取一些业务数据的,但现在新系统想通过页面的一些配置化实现跟配置SQL一样去抽取数据。之前的后端实现逻辑已经在之前《使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据》的博文中讲解了,本篇博文主要是结合前端去实现。最终前端的可配置效果如下:就是前

2022-06-17 10:55:01 923

原创 使用Druid SQL Parser解析SQL

在以前的博文《使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据》中讲到了目前业务上的需求就是以前老系统是通过配置SQL去抽取一些业务数据的,但现在新系统想通过页面的一些配置化实现跟配置SQL一样去抽取数据。所以在之前的博文讲到了如何利用JPA Specification和构造的JSON数据去抽取数据。但是老系统很多历史数据都是用SQL去配置的,这些配置当然需要迁移到新系统,但是我们不可能手工一条条去把这些SQL转成当前的JSON结构,这样太浪费时间了。所以我的

2022-06-16 16:12:28 13523

原创 手把手带你实现符合Promise/A+规范的Promise

文章目录手把手带你实现符合Promise/A+规范的Promise什么是Promise/A+规范?一步步实现自定义Promise构造函数resolve 与 reject的构建与基础实现throw 抛出异常改变状态Promise的状态一旦改变,就不会再变then 方法执行回调基础实现异步任务 then 方法实现根据Promise/A+规范 优化then方法指定多个回调then 返回结果是一个新的promise对象The Promise Resolution ProcedurePromise.prototype

2022-05-19 14:53:40 451 1

原创 如何中断Promise的链式调用?

文章目录如何中断Promise的链式调用?如何中断Promise的链式调用?问题:当promise状态改变时,他的链式调用都会生效,那如果我们有这个一个实际需求:我们有5个then(),但其中有条件判断,如当我符合或者不符合第三个then条件时,要直接中断链式调用,不再走下面的then,该如何操作?我们知道Promise有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败),当状态从pending(进行中)变成fulfilled(已成功)或者rejected(已

2022-05-16 11:19:47 1977

原创 带你快速入门ES6中的Promise对象

文章目录带你快速入门Promise对象什么是Promise?Promise的基本用法Promise.prototype.then()Promise.prototype.catch()Promise.prototype.finally()Promise.all()Promise.race()Promise.allSettled()Promise.any()Promise.resolve()Promise.reject()参考带你快速入门Promise对象什么是Promise?Promise 是异步编程

2022-05-16 11:17:31 271

原创 Java对象匹配以及权重筛选的设计和实现

Java对象匹配以及权重筛选的设计和实现我们先谈需求,再谈设计。现在我们有一个对象,属于类A和另一堆对象属于类B,他们不是同一个类。但是他们有一些字段是类似的,在我们要从一堆类B的对象中找到和对象A最匹配的对象B。所以我们需要从一堆类B对象中找到和对象A最匹配的对象。但是即使是最匹配也不一定是符合要求的,所以我们的原则就是既是符合原则的,又是最匹配的,而且有些字段如果匹配的话,对象的相似度会更高一些,也就是更容易命中。所以我们把需求分为两步找出所有符合需求的类B对象从这对符合的需求的对象列表中

2022-05-06 13:54:27 1143

原创 MySQL-InnoDB-MVCC多版本并发控制

文章目录MySQL-InnoDB-MVCC多版本并发控制为什么需要有MVCC?什么是当前读和快照读?快照读当前读MVCC 的实现原理三个隐藏的字段Undo Log记录链图解Read View 读视图MVCC的整体流程RR级别下和RC级别下 Read View生成的时机总结本文简单总结参考MySQL-InnoDB-MVCC多版本并发控制InnoDB is a multi-version storage engine. It keeps information about old versions of

2022-05-06 11:21:22 443

原创 CSS中使用border属性来绘制三角形

文章目录CSS中使用border属性来绘制三角形border-style 属性border-width 属性border-color 属性CSS 边框各边CSS Border - 简写属性使用border属性来绘制三角形CSS中使用border属性来绘制三角形在网页设计中我们经常会看到如下这样的三角形,今天我们就来使用border属性来实现这些三角形的绘制首先我们来学习一下CSS的border属性border-style 属性border-style 属性指定要显示的边框类型。允许以下值:

2022-04-30 00:30:00 2329

原创 使用Mybatis自定义拦截器处理CreateBy,UpdateBy审计数据的填充

文章目录使用Mybatis自定义拦截器处理CreateBy,UpdateBy审计数据的填充Mybatis自定义拦截器的实现参考使用Mybatis自定义拦截器处理CreateBy,UpdateBy审计数据的填充上一篇博文,我们是用了Mybatis的自定义拦截器,对表进行水平切分。这次我们是用mybatis的拦截器来完成审计数据的填充,比如createBy,updateBy等等。Mybatis自定义拦截器的实现我们直接看mybatis自定义拦截器的实现吧。Mybatis执行增删改的底层核心接口是Exe

2022-04-04 16:21:53 1811

原创 使用Mybatis拦截器实现数据分表

文章目录使用Mybatis拦截器进行数据分表实战分表注解Mybaits的拦截器实现参考使用Mybatis拦截器进行数据分表实战在项目中我们是用Mybatis + TKMapper + MYSQL存储了一些消息日志,但是现在随着业务数据暴增, 单表支撑不了这么多数据. 因此决定把表做水平切分, 按照月份来给表进行切分。这样当我们需要housekeep数据的时候,就可以直接drop掉表了,不论是备份还是删除效率都会比较高那我们就会是用到Mybaits的拦截器Mybatis插件机制:  Mybatis

2022-04-04 16:06:10 3746

原创 基于Vue和Element-UI自定义分组以及分组全选Select 选择器

文章目录基于Vue和Element-UI自定义分组以及分组全选Select 选择器源代码基于Vue和Element-UI自定义分组以及分组全选Select 选择器上一篇博文我们已经实现了基于Vue和Element-UI中Select 选择器的分组全选以及样式修改问题, 但是在分组方面我们是用了element-ui 自带的使用el-option-group对备选项进行分组,它的label属性为分组名的功能,但是出来的效果样式很难自定义,就算是魔改element的样式也有一些改不了的。比如我们的需求就是需

2022-03-31 14:14:18 3133

原创 基于Vue和Element-UI中Select 选择器的分组全选以及样式修改问题

文章目录基于Vue和Element-UI中Select 选择器的分组全选以及样式修改问题Select选择器分组Select选择器分组加全选Select 选择器的样式修改问题参考基于Vue和Element-UI中Select 选择器的分组全选以及样式修改问题首先我们来看看最终表现出来的效果图本人前端写的比较少,因为有需求是需要做到如上图所示的效果,所以特意研究了一下。Select选择器分组关于el-select 选择器分组这个,在element-ui的官网也给出了简单的demo了,所以本博文也是基

2022-03-29 16:00:06 5602

原创 使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据

文章目录使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据需求概要JSON 结构的设计使用策略模式执行不同的查询条件构造查询条件主逻辑具体的代码实现不同策略的具体实现继承JpaSpecificationExecutor 实现自己的SpecificationExecutor动态注册策略bean到Spring中使用Spring Boot JPA Specification实现使用JSON数据来查询实体数据需求概要看标题可能有一点懵,但这篇文章来源于一个需求,这

2022-03-24 16:14:06 2944

原创 基于Spring Boot Data JPA的通用audit log日志记录的设计和实现

文章目录基于Spring Boot Data JPA的通用audit log日志记录的设计和实现需求概要注解设计EntityListener的具体实现基于Spring Boot Data JPA的通用audit log日志记录的设计和实现本文会讲解关于在Spring Boot Data JPA中如何设计一个通用的日志记录模块。本文重点是设计的思路和部分的具体实现,并不会提供完整的实现代码。博文的主要目的是为了记录自己的实现思路还有给其他有相同需求的小伙伴一些想法。既然是基于JPA的,那我们必然考虑到会

2022-03-23 17:14:18 2104

原创 使用socket.io实现强制踢出其他在线账号

文章目录使用socket.io实现强制踢出其他在线账号Node使用`socket.io`Vue使用`vue-socket.io`参考使用socket.io实现强制踢出其他在线账号因为自己学习写的node项目需要这么一个功能,就是同一个账号只能在一个浏览器登录,如果有多个浏览器登录了同一个账号,那么在登陆的时候就会提示是否踢出其他在线用户,如果点击确认就会强制踢出其他在线账号。这里后端使用到了node.js, 前端使用到了vue。当然我这里只是给出了我自己的一个简单实现,其实无外乎都是推送给前台客户端告诉

2022-02-08 17:59:49 1377

原创 三分钟快速了解CSS Display的属性:Block,Inline,Inline-Block

文章目录三分钟快速了解CSS Display的属性:Block,Inline,Inline-BlockBlockInlineInline-blockBlock,Inline,Inline-Block的左右对齐方法三分钟快速了解CSS Display的属性:Block,Inline,Inline-Block元素的类型可以分为块级元素和行内元素两大类,但是还有一种比较特殊的元素:行内块级元素。Block块级元素就是在网页中以块的形式出现的,以块的形式出现的意思就是元素显示为矩形区域.除了<div&

2022-02-06 03:45:00 998

原创 十分钟快速弄清楚 CSS Position 定位

文章目录十分钟弄清楚 CSS Position 定位static 属性值relative属性值absolute属性值fixed属性值sticky属性值参考十分钟弄清楚 CSS Position 定位本人java后端工程师,平时对于前端的CSS的使用比较少,可以说是菜鸟级别的。但偶尔又需要对前端的一些CSS样式进行调整,所以索性开始学习一下前端的CSS,所以今天从最基础的CSS position 定位开始学习。本博文使用到的编辑器是在线编辑器codepen,然后设置了一下css的样式,可以更直观的看到我

2022-02-05 20:08:45 1294

原创 什么是脏读、不可重复读、幻读?一文带你快速搞定MySQL事务隔离级别

文章目录什么是脏读、不可重复读、幻读?一文带你快速搞定MySQL事务隔离级别事务ACID四个特性原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)事务隔离级别多个事务并发执行时引发的问题脏读不可重复读幻读MySQL四个事务隔离级别参考什么是脏读、不可重复读、幻读?一文带你快速搞定MySQL事务隔离级别事务既然要讲事务隔离级别,那我们肯定要来先说一下事务这个概念。那什么是事务呢?我们可以看到oracle的解释是:A transa

2021-10-24 00:19:08 335

原创 五分钟了解一下MySQL的体系结构

文章目录MySQL体系结构Client connectorMySQL ServerConnection poolService utilitiesSQL 层SQL interface解析器(Parser)优化器(Optimizer)缓存(Cache)存储引擎物理存储层参考MySQL体系结构下图来自《MySQL技术内幕(InnoDB存储引擎)第2版》书中的图:然后我们根据这个图来讲解一下每个部分的功能和作用。Client connector首先我们可以看到最上面的 connector部分负责处理

2021-08-30 16:16:46 274

原创 五分钟告诉你什么是MySQL的覆盖索引

文章目录五分钟告诉你什么是MySQL的覆盖索引覆盖索引总结参考五分钟告诉你什么是MySQL的覆盖索引前面我们已经对MySQL索引底层原理多少有一定的了解了,还不是很了解的小伙伴可以看我之前的博文:《不会吧不会吧,难道还有人不了解MySQL索引底层原理?》 和 《MySQL底层为什么要选用B+树作为索引的数据结构呢?》其实在之前的博文中也提到了覆盖索引啦,然后今天就单独把这个拿出来讲一讲这个MySQL的性能优化: 覆盖索引。覆盖索引覆盖索引:SQL只需要通过索引就可以返回查询所需要的数据,而不必通

2021-08-12 22:32:16 6563

原创 不会吧不会吧,难道还有人不了解MySQL索引底层原理?

文章目录MySQL索引底层原理什么是索引?索引的优点索引的缺点索引分类索引的底层原理索引数据结构选择MyISAM存储引擎和InnoDB存储引擎索引B+树的区别InnoDB索引B+树详解聚簇索引和非聚簇索引聚簇索引需要注意什么?为什么不推荐主键使用UUID?最左前缀原理MySQL是如何选择最优索引的?覆盖索引总结参考MySQL索引底层原理什么是索引?之前我们也讲过了(我的上面一篇博文中提到的关于索引数据结构的选择),索引就是一种帮助mysql提高查询效率的数据结构,而且重点是排好序的数据结构索引的优点

2021-08-11 22:38:45 901 2

原创 MySQL底层为什么要选用B+树作为索引的数据结构呢?

文章目录MySQL底层为什么要选用B+树作为索引的数据结构呢?MySQL 索引底层数据结构选型哈希表(Hash)二叉查找树(BST)平衡二叉树(AVL树)红黑树B-树B+树参考MySQL底层为什么要选用B+树作为索引的数据结构呢?MySQL我想是大家平时都会用到的数据库了,我们平时优化SQL的执行速度往往都是加索引就完事了,管他的看执行计划然后加索引。那我们想过我们加索引其实加的是什么东西吗,为什么加索引能够帮我们优化查询速度呢。其实这就跟查字典一个道理了,如果我们想查一个字,在没有目录的情况下,我们就

2021-07-22 16:48:21 747

原创 Java锁synchronized关键字学习系列之重量级锁

文章目录Java锁synchronized关键字学习系列之重量级锁synchronized的底层实现`monitorenter`和`monitorexit`内置锁(ObjectMonitor)重量级锁原理总结参考Java锁synchronized关键字学习系列之重量级锁synchronized的底层实现我们通过下面这段代码来了解一下synchronized的底层实现public class RnEnterLockDemo { public void method() {

2021-07-07 15:45:43 1085

原创 Java锁synchronized关键字学习系列之轻量级锁升级

文章目录Java锁synchronized关键字学习系列之轻量级锁升级回顾轻量级锁的加锁过程自旋什么情况下轻量级锁要升级为重量级锁呢?轻量级锁升级重量级锁参考源代码Java锁synchronized关键字学习系列之轻量级锁升级这篇博文我们来讲一下轻量级锁的升级到重量锁。我们先开快速回顾一下如何升级到轻量级锁的。回顾轻量级锁的加锁过程(1)在代码进入同步块的时候,如果同步对象锁状态为无锁状态(锁标志位为“01”状态,是否为偏向锁为“0”),虚拟机首先将在当前线程的栈帧中建立一个名为锁记录(Lock

2021-07-02 11:42:38 777

Java并发编程实战之互斥锁.pptx

“原子性”的本质是什么?其实不是不可分割,不可分割只是外在表现,其本质是多个资源间有一致性的要求,操作的中间状态对外不可见。所以本质来说,解决原子性问题,是要保证中间状态对外不可见。(这一点需要细细品一品) 原子性问题的源头是线程切换,多个线程同时操作同一个变量。这样就会出现线程冲突的问题。所以需要一种机制保持在多核CPU下,同一个时刻只有一个线程更改某个共享变量。(其实没有共享变量,也不会存在并发问题),所以说如果我们能够保证对共享变量的修改是互斥的,那么就能保证原子性了。

2022-11-13

kubectl 1.8.0

下载链接https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/windows/amd64/kubectl.exe

2019-06-22

kubernetes-client-windows-amd64 (v1.10.11).tar.gz

kubernetes-client-windows-amd64 (v1.10.11).tar.gz kubernetes-client-windows v1.10.11

2019-06-15

node-v11.11.0-linux-x64.tar

node-v11.11.0-linux-x64.tar node的linux版v11.11.0!!

2019-03-17

sonar-groovy-plugin-1.5.jar

jenkins集成sonarqube的groovy插件sonar-groovy-plugin-1.5.jar

2019-03-17

XML DTD,XmlSchema标准参考手册

XML DTD和XmlSchema标准参考手册!!!!!!!!!!!!!!!!!!!!!!

2017-11-04

struts2课件

struts2课件

2017-01-29

struts2.0教学ppt

struts2.0教学ppt

2017-01-29

apache-tomcat-7.0.55-windows-x64.zip

apache-tomcat-7.0.55-windows-x64.zip

2017-01-16

数据库实验答案

数据库实验答案

2016-05-26

Linux操作系统原理与运用(复习题)

Linux操作系统原理与运用(复习题)

2016-05-26

软件工程案例教程课后答案

软件工程案例教程课后答案

2016-05-26

方立勋JavaWeb全套ppt

30天轻松掌握JavaWeb视频 方立勋JavaWeb全套ppt

2016-02-23

蓝桥杯java历年真题及答案整理

蓝桥杯java历年真题及答案整理(共129道题目及答案)

2015-11-14

方立勋《30天JavaWeb视频》完整版

方立勋《30天JavaWeb视频》完整版笔记

2015-09-13

java反编译工具(XJad)

很好的反编译工具,可以对单个.class文件反编译,也可以对jar一次性全部反编译,很强大软件介绍:XJad是基于Jad核心的Java源程序反编译软件

2015-09-13

Swing实现潜艇大战源码下载

Swing实现潜艇大战源码下载 有需要的可以下载来看看

2015-08-24

Java实现音乐播放器

Java实现音乐播放器源码 有需要的可以下载来看看

2015-08-24

java俄罗斯方块源码

java俄罗斯方块的源码 有需要的可以下载来看看

2015-08-24

exe4j5_0_1

exe4j5_0_1 64位工具 将java文件转成exe文件

2015-08-24

java连接sql2000用的三个jar包

用于java连接sql2000用的三个jar包

2015-08-24

SQL安装挂起清除小工具

SQL安装挂起清除小工具 解决sql2000安装挂起的问题

2015-08-24

C-C++中文帮助文档

C和C++的帮助文档 C-C++中文帮助文档.chm

2015-08-24

java满汉楼的数据库文件

直接还原数据库即可,但里面的表不全,只有十几张

2015-08-24

java满汉楼源码文档

韩顺平java满汉楼源码文档 数据库文件貌似不可用

2015-08-24

韩顺平循序渐进学java.从入门到精通资料

韩顺平循序渐进学java.从入门到精通的视频下载地址及部分代码和笔记

2015-08-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除