该文被密码保护。 阅读全文
posted @ 2021-06-29 09:43 zofun 阅读(0) 评论(0) 推荐(0) 编辑
摘要: leetcode70 爬楼梯 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 解答: 递推公式: 设f(n)为n阶楼梯的爬法 f(n)=f(n-1)+f(n-2) n>2 f(n)=1 n=1 f(n)=2 n=2 到 阅读全文
posted @ 2020-09-09 22:15 zofun 阅读(179) 评论(0) 推荐(0) 编辑
摘要: "更多精彩内容可以访问我的独立博客" 我们从最简单的一段代码开始,分析清楚mybatis的大致工作流程。然后再从代码细节上分析mybatis的一些特性。 基础代码示例 其中User类其实就是一个只有id,username,password的pojo。我就不粘贴代码了。 mybatis当然少不了对应的 阅读全文
posted @ 2020-04-18 20:53 zofun 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 概述 ReentrantLock是一个可重入的互斥锁,也被称为独占锁。它支持公平锁和非公平锁两种模式。 ReentrantLock的使用方法 下面看一个最初级的例子: 在进入方法后,在需要加锁的一些操作执行之前需要调用lock方法,在jdk文档中对lock方法详细解释如下: 获得锁。 如果锁没有被另 阅读全文
posted @ 2020-01-19 22:33 zofun 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 概述 是一个线程安全的 ,通过内部的 数组和显示锁ReentrantLock来实现线程安全。 的底层也是基于 实现的。 更适合于读多写少的环节。 CopyOnWriteArrayList源码分析 核心属性 它的内部属性也非常的简单,值得注意的是array是通过volatile修饰的。 重要方法分析 阅读全文
posted @ 2020-01-17 17:43 zofun 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 概述 CyclicBarrier是一个同步辅助类,它允许一组线程相互等待,直到达到某个公共屏障点。并且在释放等待线程之后,CyclicBarrier是可以重复使用的。 简单使用 下面这段代码利用了CyclicBarrier来使得线程创建后相互等待,直到所有的线程都准备好,以此来使多个线程同时执行。 阅读全文
posted @ 2020-01-17 17:41 zofun 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 概述 CountDownLatch允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助。简单来说,就是CountDownLatch内部维护了一个计数器,每个线程完成自己的操作之后都会将计数器减一,然后会在计数器的值变为0之前一直阻塞,直到计数器的值变为0. 简单使用 这个例子主要演示了 阅读全文
posted @ 2020-01-17 17:39 zofun 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 概述 ReentrantReadWriteLock维护了一对相关的锁,它们分别是共享readLock和独占writeLock。关于共享读锁和排他写锁的概念其实很好理解。所谓共享读锁就是一个线程读的时候,其它线程也可以来读(共享),但是不能来写。排他写锁是指一个线程在写的时候,其它线程不能来写或读(排 阅读全文
posted @ 2020-01-17 17:36 zofun 阅读(697) 评论(0) 推荐(0) 编辑
摘要: 什么是AQS? AQS即 ,是一个用于构建锁和同步器的框架。它能降低构建锁和同步器的工作量,还可以避免处理多个位置上发生的竞争问题。在基于AQS构建的同步器中,只可能在一个时刻发生阻塞,从而降低上下文切换的开销,并提高吞吐量。 AQS支持独占锁(exclusive)和共享锁(share)两种模式。 阅读全文
posted @ 2020-01-17 17:19 zofun 阅读(18265) 评论(1) 推荐(1) 编辑
摘要: Alpha2项目的测试 作业属性 | 作业课程 | "系统分析与设计" | | : : | : : | | 作业要求| "第五次个人作业" | |作业目标| Alpha2项目的测试 | |学号|201731062416| |博客地址| "博客园博客" | |团队名称|Running Man| 测试报 阅读全文
posted @ 2019-11-24 21:27 zofun 阅读(195) 评论(0) 推荐(0) 编辑