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

多线程

专栏作者
215
文章
46353
阅读量
27
订阅数
Java 多线程系列Ⅶ
JUC 是 Java 并发包(java.util.concurrent)的简称,该包在 Java 5.0 版本引入,提供了在并发编程中常用的工具类。这些工具类包括用于多线程同步的锁(如 ReentrantLock),用于线程池的 ExecutorService,用于原子操作的 AtomicInteger 等。这些类和接口都是非阻塞的,设计目标是在多线程环境下提供高性能和可扩展性。
终有救赎
2024-02-27
1270
Java 多线程系列Ⅵ
CAS就是compare and swap(比较交换),是一种很出名的无锁的算法,就是可以不使用锁机制实现线程间的同步。使用CAS线程是不会被阻塞的,所以又称为非阻塞同步。CAS算法涉及到三个操作:三个操作数——内存位置、预期原值及新值
终有救赎
2024-02-25
840
Java 多线程系列Ⅴ
乐观锁:乐观锁体现的是悲观锁的反面。它是一种积极的思想,它总是认为数据是不会被修改的,所以是不会对数据上锁的。但是乐观锁在更新的时候会去判断数据是否被更新过。乐观锁的实现方案一般有两种(版本号机制和CAS)。乐观锁适用于读多写少的场景,这样可以提高系统的并发量。在Java中 java.util.concurrent.atomic下的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。
终有救赎
2024-02-03
1350
Java 多线程系列Ⅳ
在软件开发过程中,会遇见很多的问题场景,对于经常遇到的问题场景,一些大佬总结出一些针对特有场景的固有套路,按照这些套路,将帮助我们将问题简单化,条理清楚的解决问题,这也是设计模式的初衷;
终有救赎
2024-02-03
1030
Java 多线程系列Ⅲ
wait()和notify()方法是用于处理多线程同步的关键方法之一。它们通常用于协调多个线程对共享资源的访问和修改。
终有救赎
2024-02-01
730
MyBatis源码阅读(十二) --- Spring加载MyBatis过程
通过前面几篇文章的学习,相信小伙伴对Mybatis的认识更加深刻了,对整体的流程应该算是比较清晰了。但是我们在项目中很少单独使用Mybatis,一般都是集成到Spring中,由Spring来帮我们完成以前很多繁琐的步骤,比如管理SqlSessionFactory、创建SqlSession,并且不需要手动调用getMapper方法去获取mapper接口,直接使用autoWired自动注入进来就好了。那么Spring到底是如何整合Mybatis的,我们有必要去了解一下。
终有救赎
2024-01-30
1420
MyBatis源码阅读(十) --- 一级缓存、二级缓存工作原理
缓存,相信大家应该不陌生,在工作中,我们也接触过一些缓存中间件,比如Redis等。缓存的作用就是为了提供查询的效率,减少访问数据库的次数,从而提供性能。同样的,Mybatis里面也提供了缓存功能,包括一级缓存和二级缓存。本篇文章我们将总结Mybatis的一级缓存、二级缓存怎么用的以及分析它们的作用域、实现原理等。
终有救赎
2024-01-30
1440
MyBatis源码阅读(九) --- 插件原理
插件功能也是Mybatis框架中的一个核心功能,Mybatis提供了自定义插件功能来帮我们扩展个性化业务需求。本篇文章我们将总结Mybatis的插件机制以及如何自定义一个插件。
终有救赎
2024-01-30
920
MyBatis源码阅读(八) --- Executor执行器
Executor 是一个接口,包含更新,查询,事务等一系列方法。在前面分析SqlSession创建过程的时候,我们知道每个SqlSession对象都会有一个Executor对象,SqlSession的操作都会交由Executor执行器执行。
终有救赎
2024-01-30
1390
MyBatis源码阅读(七) --- 查询结果集封装流程
前面一篇文章我们分析了mapper方法具体的执行流程,跟踪代码到了resultSetHandler.handleResultSets()处理结果集这里,这也是Mybatis处理数据的最后一个步骤了。
终有救赎
2024-01-30
1300
Java 多线程系列Ⅱ
在多线程环境中,线程安全是确保程序正确性的关键因素。Java作为一种广泛使用的编程语言,其线程安全的概念、策略和案例分析对于开发人员来说至关重要。
终有救赎
2024-01-30
1090
MyBatis源码阅读(十一) --- MyBatis事务管理机制
事务的概念,大家都不会陌生。在我们写增删改的时候,我们肯定都需要加上事务,来保证数据的一致性。MyBatis作为Java语言的数据库框架,对数据库的事务管理是其非常重要的一个方面。在Mybatis中,同样提供了事务的功能,所以我们有必要了解一下MyBatis的事务管理的实现机制。
终有救赎
2024-01-10
910
MyBatis源码阅读(六) ---mapper方法具体执行流程分析
前面我们介绍了mapper接口是如何获取的,那么接下来就是具体的调用Mapper方法执行SQL:
终有救赎
2023-12-26
1580
Java 多线程系列Ⅰ
首先,所有的创建线程的方式都是基于Thread类来实现,每个线程都必须通过 Thread 类的构造方法创建,并实现 run() 方法来执行线程的任务。
终有救赎
2023-12-26
1340
Java并发之进程和线程
进程是执行中的一段程序,一旦程序被载入到内存中并准备执行,它就是一个进程。进程表示资源分配的基本概念,是调度运行的基本单位,是系统中的并发执行的单位。每个进程都有各自独立的一块内存,使得各个进程之间内存地址相互隔离。
终有救赎
2023-12-26
1290
MyBatis源码阅读(五) ---Mapper接口的获取过程
前面一篇文章我们总结了SqlSession的创建过程,既然会话已经创建成功,那么下一步自然就是去获取到Mapper接口执行具体的SQL,当然也可以直接使用SqlSession执行具体的SQL。本篇文章主要分析一下Mapper接口的获取过程。
终有救赎
2023-12-26
1190
MyBatis源码阅读(四) --- SqlSession的创建过程
前面一篇文章我们详细分析了SqlSessionFactory的创建过程,既然SqlSessionFactory有了,那么我们就可以通过sqlSessionFactory.openSession()来开启一个会话了,进而实现对数据库的操作,那么sqlSessionFactory.openSession()到底干了哪些事情呢?本篇文章就来详细了解一下。
终有救赎
2023-12-26
1200
MyBatis源码阅读(三) --- 配置信息的解析以及SqlSessionFactory构建过程
前面一篇文章我们对Mybatis整体的执行流程做了一个详细的总结,可进入专栏查看;
终有救赎
2023-12-22
1140
MyBatis源码阅读(二) --- 执行流程分析
前面一篇文章我们已经搭建好了Mybatis的源码调试环境,那么今天我们先来看看MyBatis整体的执行流程是怎样的,先对整体有个了解,后面我们再针对各个细节进行分析。在分析执行流程之前,我们先对Mybatis中几个核心类做个简单的介绍。
终有救赎
2023-12-22
1410
MyBatis源码阅读(一) --- 源码阅读环境搭建
使用Mybatis有一段时间了,但是一直没有专门去阅读MyBatis框架的源码,Mybatis是一个非常值得我们去阅读的框架,源码里面运用了很多常见的设计模式,如构建者模式、代理模式、模板方法模式等等,都值得我们去学习和借鉴。
终有救赎
2023-12-22
1040
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档