首页
学习
活动
专区
工具
TVP
发布

Java编程技术

专栏作者
203
文章
223323
阅读量
41
订阅数
Java 异步编程导论
异步编程是可以让程序并行运行的一种手段,其可以让程序中的一个工作单元与主应用程序线程分开独立运行,并且等工作单元运行结束后通知主应用程序线程它的运行结果或者失败原因。使用它有许多好处,例如改进的应用程序性能和减少用户等待时间等。
加多
2019-08-16
8980
何为脏读、不可重复读、幻读
事务的隔离性是指多个事务并发执行的时候相互之间不受到彼此的干扰的特性,隔离性是事务ACID特性中的I,根据隔离程度从低到高分为Read Uncommitted(读未提交),Read Committed(读已提交),Repeatable Read(可重复读),Serializable(串行化)四种隔离级别。在具体介绍事务隔离性前先介绍几个名词,以便说明数据库在并发操作时候可能存在的问题,以便展开来探讨这四种隔离级别对应存在哪些问题,哪些隔离级别解决了哪些问题。
加多
2018-09-06
7780
MySQL中流式查询使用
MySQL 是目前使用比较广泛的关系型数据库,而从数据库里面根据条件查询数据到内存的情况想必大家在日常项目实践中都有使用。
加多
2018-09-06
1.4K0
分布式事务- 二阶段协议
在单个数据库实例时候,我们可以在一个数据源的事务(本地事务)内做多步数据库操作,在事务内的多个操作要么全部执行生效,要么全部不生效。在多数据实例节点时候,我们对多个实例的数据源进行操作时候就没办法把多个操作放到一个大的事务内来管理了,因为多个实例操作的是不同的数据源,而数据库自带的事务是针对单个数据源来说的。
加多
2018-09-06
3300
分布式事务- 三阶段协议
前面我们介绍了为解决分布式事务而提出来的的二阶段协议,本文首先来讲解二阶段的不足,然后阐述三阶段协议,三阶段协议也是一个标准的协议,也并没有说具体如何实现。
加多
2018-09-06
1840
使用数据库悲观锁实现不可重入的分布式锁
在同一个jvm进程中时,可以使用JUC提供的一些锁来解决多个线程竞争同一个共享资源时候的线程安全问题,但是当多个不同机器上的不同jvm进程共同竞争同一个共享资源时候,juc包的锁就无能无力了,这时候就需要分布式锁了。常见的有使用zk的最小版本,redis的set函数,数据库锁来实现,本节我们谈谈使用数据库悲观锁机制来实现一个分布式锁。
加多
2018-09-06
3340
分布式事务- TCC编程式模式
严格遵守ACID的分布式事务我们称为刚性事务,而遵循BASE理论(基本可用:在故障出现时保证核心功能可用,软状态:允许中间状态出现,最终一致性:不要求分布式事务打成中时间点数据都是一致性的,但是保证达到某个时间点后,数据就处于了一致性了)的事务我们称为柔性事务,其中TCC编程模式就属于柔性事务,本文我们来阐述其理论。
加多
2018-09-06
9840
Spring&Mybaits数据库配置解惑
一般我们会在datasource.xml中进行如下配置,但是其中每个配置项原理和用途是什么,并不是那么清楚,如果不清楚的话,在使用时候就很有可能会遇到坑,所以下面对这些配置项进行一一解说
加多
2018-09-06
5920
Dubbo剖析-线程模型
Dubbo默认的底层网络通讯是使用Netty来做的,在服务提供方NettyServer使用两级线程池,其中EventLoopGroup(boss)主要用来接受客户端的链接请求,并把接受的请求分发给EventLoopGroup(worker)来处理,boss和worker线程组我们称为IO线程。
加多
2018-09-06
4250
浅谈AutoCloseable接口
最近在翻看中间件源码时候发现有些类实现了AutoCloseable接口,这个接口很生疏,所以搜了下资料,学习了下,下面做个总结。
加多
2018-09-06
6600
诡异的类型转换
最近在做应用迁移时候遇到了一个诡异的类型转换问题,感觉比较有意思,就记录下来和大家分享下。
加多
2018-09-06
6680
JDK8并发包新增StampedLock锁
StampedLock是并发包里面jdk8版本新增的一个锁,该锁提供了三种模式的读写控制,三种模式分别如下:
加多
2018-09-06
3790
你真的的懂JDBC?
一、前言 Java中操作数据库元老是使用JDBC,而JDBC内部是如何实现的,为何每次使用时候都是写那些不理解的几行固定代码?这些看似不相关的代码内部是否有瓜葛那,下面进来探讨一二。 二、一个例子 p
加多
2018-09-06
5420
MongoDB和MySQL对比(译)
几十年来,关系型数据库已经成为企业应用程序的基础,自从MySQL在1995年发布以来,它已经成为一种受欢迎并且廉价的选择。然而随着近年来数据量和数据的不断激增,非关系数据库技术如MongoDB应运而生,以满足新应用的需求。 MongoDB用于新的应用程序,以及扩充或替换现有的关系型基础设施(关系型数据库)。
加多
2018-09-06
3.8K0
Druid连接池原理学习
(1)、 如果设置了maxWait或者构造函数参数传入的为true,则创建的ReentrantLock为公平锁,否者为非公平锁 (2)、 如果设置了initialSize>=1,则会启动是创建initialSize个数数据库物理连接到线程池。 (3)、 如果没设置createScheduler则创建并启动数据库连接创建线程,如果没设置destroyScheduler则创建并启动数据库连接回收线程,如果timeBetweenLogStatsMillis>0则创建logstat线程。
加多
2018-09-06
5.8K0
受限访问量问题中锁的使用
最近在做网上法庭的一个比较有意思的小需求,就是通过扫二维码方式允许最多30个人同时进入庭审,但是不限制进入的是是不是庭审人员,也就是说只要扫了这个二维码并且当前案件对应的参与人数不到30那么就可以进入,始终维持一个庭审案件里面最多有30人。
加多
2018-09-06
5320
SpringBoot+MyBatis通用Mapper3实践浅析
MyBatis通用Mapper3是对mybaits的数据库操作的一层封装,之前使用时候是根据数据库表生成mapper.xml,mapper的接口类,这个mapper.xml和接口类被代理后生成能够操作数据对应表的基础功能,而Mapper3则是对其封装,基础功能不在需要mapper.xml,接口类只需要继承封装好的Mapper<T>接口就具有了操表的基础功能,如果你需要自己的操作则还是需要在mapper.xml中和接口类中写实现。Mapper3项目地址:http://git.oschina.net/free/Mapper
加多
2018-09-06
6790
乐观锁原理与实战演练
最近在做一个简单审批流程的项目,由于只有固定二级审批所以没有工作流组件,然后就遇到一个审批节点捞单时候,多个人同时审批时候如何保证业务正常运行的问题,我采用的就是乐观锁来解决的。所谓捞单就是一个审批节点可以同时由多个人同时审批。
加多
2018-09-06
5440
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档