会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
怀轩&念睿
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
下一页
2020年7月30日
十二、线程池
摘要: 线程池解析
阅读全文
posted @ 2020-07-30 11:27 一南
阅读(101)
评论(0)
推荐(0)
2020年7月21日
(十一)并发容器ConcurrentHashMap
摘要: Hash的概念 就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息
阅读全文
posted @ 2020-07-21 23:49 一南
阅读(261)
评论(0)
推荐(0)
mybatis plus 踩坑记 -- 自动填充
摘要: 实现MetaObjectHandler接口,会有两个方法需要我们手动实现,一个是insertFill,一个是updateFill insertFill 在目前看来,随着版本的变化没有影响,可以正常使用 updateFill 在3.3.x 之后的版本,如果我们采用 mybatis-plus 默认的 更
阅读全文
posted @ 2020-07-21 15:55 一南
阅读(3808)
评论(0)
推荐(0)
2020年7月7日
(十)Lock锁的实现分析(AQS)
摘要: ReentrantLock的实现 概念:锁的可重入 重进入是指任意线程在获取到锁之后能够再次获取该锁而不会被锁所阻塞,该特性的实现需要解决以下两个问题。 线程再次获取锁。锁需要去识别获取锁的线程是否为当前占据锁的线程,如果是,则再次成功获取。 锁的最终释放。线程重复n次获取了锁,随后在第n次释放该锁
阅读全文
posted @ 2020-07-07 00:03 一南
阅读(310)
评论(0)
推荐(0)
(九) LockSupport、CLH队列锁、AbstractQueuedSynchronizer (AQS) 原理解析
摘要: LockSupport LockSupport定义了一组的公共静态方法,这些方法提供了最基本的线程阻塞和唤醒功能,而LockSupport也成为构建同步组件的基础工具。 LockSupport定义了一组以park开头的方法用来阻塞当前线程,以及unpark(Thread thread)方法来唤醒一个
阅读全文
posted @ 2020-07-07 00:00 一南
阅读(484)
评论(0)
推荐(0)
2020年7月4日
(八) 显式锁Lock的常用API
摘要: 显示锁的必要性 Java程序是靠synchronized关键字实现锁功能的,使用synchronized关键字将会隐式地获取锁,但是它将锁的获取和释放固化了,也就是先获取再释放。 Lock的基本用法 在finally块中释放锁,目的是保证在获取到锁之后,最终能够被释放。 不要将获取锁的过程写在try
阅读全文
posted @ 2020-07-04 15:10 一南
阅读(365)
评论(0)
推荐(0)
(七) 线程并发工具类之Semaphore,Callable、Future和FutureTask
摘要: Semaphore 基本概念: Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。 使用场景: Semaphore可以用于做流量控制,特别是公用资源有限的应用场景,比如数据库连接。 假如有一个需求,要读取几万个文件的数据,因为都是IO密集
阅读全文
posted @ 2020-07-04 15:06 一南
阅读(393)
评论(0)
推荐(0)
2020年6月22日
先查询再根据查询结果操作,并发场景下解决方案
摘要: 1.数据库表建联合主键; 2.数据库表建唯一约束; 3.查询和插入放在同一个同步代码块中;(加锁) 4.查询时锁表;
阅读全文
posted @ 2020-06-22 18:47 一南
阅读(631)
评论(0)
推荐(0)
2020年6月19日
(六) 线程并发工具类之 CountDownLatch 和 CyclicBarrier
摘要: CountDownLatch 介绍 闭锁,CountDownLatch这个类能够使一个线程等待其他线程完成各自的工作后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行。 CountDownLatch是通过一个计数器来实现的,计数器的初始值为初始任务的数量。每
阅读全文
posted @ 2020-06-19 17:27 一南
阅读(160)
评论(0)
推荐(0)
2020年6月16日
(四) 线程间的协作 wait() 、 notify() 、 notifyAll()
摘要: 线程之间的协作 用一个手枪打弹和装弹的例子,废话不多,上代码 package com.monco.ch1.wn; /** * @author monco * @date 2020/5/21 * @description: 给手枪装子弹 打子弹 */ public class Gun { privat
阅读全文
posted @ 2020-06-16 20:16 一南
阅读(128)
评论(0)
推荐(0)
上一页
1
2
3
下一页
公告