- 博客(17)
- 资源 (2)
- 收藏
- 关注
转载 站在更高的角度,看微服务架构的理论基础
微服务是近些年非常火热的新概念,大家都在追,也都觉得很对,但是似乎没有很充足的理论基础说明这是正确的,给人的感觉是 不明觉厉 。前段时间看了Mike Amundsen 《远距离条件下的康...
2019-12-30 15:57:18 153
原创 Java程序员,你必须要看的微服务架构设计思想
微服务软件架构是一个包含各种组织的系统组织,这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。Co...
2019-12-28 16:28:02 298
原创 轻松理解AOP(面向切面编程)
本文主要介绍AOP思想,而不是Spring,Spring在本文只做为理解AOP的工具和例子,所以也不打算介绍Spring的Aspect、Join point、Advice、AOP pro...
2019-12-24 15:25:50 237 1
原创 “死锁”四个必要条件的合理解释
《“死锁”四个必要条件的合理解释》分为三个部分:【1】“死锁”的含义【2】“死锁”的原因及四个必要条件的合理解释【3】“死锁”的预防和解除1.“死锁”的含义所谓死锁:是指两个或两个以上的...
2019-12-23 15:07:02 374
原创 ReadWriteLock场景应用解析
Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果,它们必须用同一个Lock对象。读...
2019-12-21 15:32:51 916
原创 探索JAVA并发 - 可重入锁和不可重入锁
锁的简单应用用lock来保证原子性(this.count++这段代码称为临界区)什么是原子性,就是不可分,从头执行到尾,不能被其他线程同时执行。可通过CAS来实现原子操作CAS(Comp...
2019-12-20 15:42:17 189
原创 线程安全的无锁RingBuffer的实现
在程序设计中,我们有时会遇到这样的情况,一个线程将数据写到一个buffer中,另外一个线程从中读数据。所以这里就有多线程竞争的问题。通常的解决办法是对竞争资源加锁。但是,一般加锁的损耗较...
2019-12-19 14:54:46 726
原创 Mysql查询语句使用select.. for update导致的数据库死锁分析
近期有一个业务需求,多台机器需要同时从Mysql一个表里查询数据并做后续业务逻辑,为了防止多台机器同时拿到一样的数据,每台机器需要在获取时锁住获取数据的数据段,保证多台机器不拿到相同的数...
2019-12-13 16:04:07 401
原创 一分钟理解Java公平锁与非公平锁
和朋友聊天他提到:ReentrantLock 的构造函数可以传递一个 bool 数据,true 时构造的是“公平锁”、false 时构造的是“非公平锁”。我的印象中锁是不区分类型的,所以...
2019-12-11 15:03:07 180
原创 Java并发面试问题,谈谈你对AQS的理解
新人大礼包,30G Java架构资料,免费领取 一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Sem...
2019-12-10 08:30:05 374 1
原创 Java中15种锁的分类综合总结
新人大礼包,30G Java架构资料,免费领取 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下: 公平锁/非公平锁 可重入锁独享锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内...
2019-12-09 09:32:36 139
原创 通俗易懂的让你理解,事务的4种隔离级别
新人大礼包,30G Java架构资料,免费领取 数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。 Read uncommit...
2019-12-05 07:26:57 218
原创 40个Java多线程面试题总结
新人大礼包,30G Java架构资料,免费领取 前言 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问题讲的不对,能指正的希望大家不吝指教。 ...
2019-12-04 07:24:03 83
原创 并发容器之ConcurrentLinkedQueue
1.ConcurrentLinkedQueue简介在单线程编程中我们会经常用到一些集合类,比如ArrayList,HashMap等,但是这些类都不是线程安全的类。在面试中也经常会有一些考点,比如ArrayList不是线程安全的,Vector是线程安全。而保障Vector线程安全的方式,是非常粗暴的在方法上用synchronized独占锁,将多线程执行变成串行化。要想将ArrayList变成线程...
2019-12-03 16:17:53 248
原创 并发容器之ConcurrentLinkedQueue
新人大礼包,30G Java架构资料,免费领取 1.ConcurrentLinkedQueue简介 在单线程编程中我们会经常用到一些集合类,比如ArrayList,HashMap等,但是这些类都不是线程安全的类。在面试中也经常会有一些考点,比如ArrayList不是线程安全的,Vector是线程安全。而保障Vector线程安全的方式,是非常粗暴的在方法上用synch...
2019-12-03 08:12:47 146
原创 并发容器之CopyOnWriteArrayList
1. CopyOnWriteArrayList的简介Java学习者都清楚ArrayList并不是线程安全的,在读线程在读取ArrayList的时候如果有写线程在写数据的时候,基于fast-fail机制,会抛出ConcurrentModificationException异常,也就是说ArrayList并不是一个线程安全的容器,当然您可以用Vector,或者使用Collections的静态方法将...
2019-12-02 17:01:01 108
原创 并发容器之CopyOnWriteArrayList
新人大礼包,30G Java架构资料,免费领取 1. CopyOnWriteArrayList的简介 Java学习者都清楚ArrayList并不是线程安全的,在读线程在读取ArrayList的时候如果有写线程在写数据的时候,基于fast-fail机制,会抛出ConcurrentModificationException异常,也就是说ArrayList并不是...
2019-12-02 08:55:38 73
Java多线程编程指南
2018-05-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人