首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java并发
订阅
冰橙的天空
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
并发环境下,先操作数据库还是先操作缓存?
在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。 假设有一写(线程A)一读(线程B)操作,先操作缓存,在操作数据库。,如下流程图所示: 这样看,没啥问题。我们再看第二个流程…
Java之AQS原理浅析
AQS全称AbstractQueuedSynchronizer,它是实现 JCU包中几乎所有的有关锁、多线程并发以及线程同步器等重要组件的基石, 其核心思想就是volatile int state这个属性配合Unsafe这个工具类来实现对当前锁的状态进行修改 。 AQS内部维护…
线程篇3:[-synchronized-]
零、前言一、多线程的简单回顾1.入门级2.如何让打印在两个线程完成后才调用2.1:让主线程先睡一会2.2.join方法3.结果呢?3.1下面是十次结果3.2从中能看出什么?3.3为什么3.4:i++发
深入理解HashMap(一)
hashmap我们都用过很多次了,主要目的就是为了加快我们的查找速度。我们学过数据结构的都知道,数组的查询和修改速度很快,但是增加一个元素或者删除一个元素就很慢,但是链表就反过来,链表是增加和删除一个元素很快,查询和修改就很慢。 通常来说,我们为了提高查询的速度,那么在插入元素…
Java 8 CompletableFuture 教程
Java 8 有大量的新特性和增强如 Lambda 表达式,Streams,CompletableFuture等。在本篇文章中我将详细解释清楚CompletableFuture以及它所有方法的使用。 在Java中CompletableFuture用于异步编程,异步编程是编写非阻…
线程池没你想的那么简单
原以为线程池还挺简单的(平时常用,也分析过原理),这次是想自己动手写一个线程池来更加深入的了解它;但在动手写的过程中落地到细节时发现并没想的那么容易。结合源码对比后确实不得不佩服 Doug Lea 。 我觉得大部分人直接去看 java.util.concurrent.Threa…
深入理解 Java 线程池:ThreadPoolExecutor
本文比较详细的分析了线程池的工作流程: 分析了线程的创建,任务的提交,状态的转换以及线程池的关闭;介绍了线程池关闭时的过程,也分析了 shutdown 方法与 getTask 方法存在竞态条件等等。
Java并发5:ConcurrentHashMap
HashMap 是非线程安全的,put操作可能导致死循环。其解决方案有 HashTable 和 Collections.synchronizedMap(hashMap) 。这两种方案都是对读写加锁,独占式,效率比较低下。 HashMap 在并发执行put操作时会引起死循环,因为…
分布式锁的几种实现方式~
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance…
JVM的ServerSocket是怎么实现的(上)
JDK 为我们提供了 ServerSocket 类作为服务端套接字的实现,通过它可以让主机监听某个端口而接收其他端的请求,处理完后还可以对请求端做出响应。它的内部真正实现是通过 SocketImpl 类来实现的,它提供了工厂模式,所以如果自己想要其他的实现也可以通过工厂模式来改…