摘要: 前言 最近明显文章更新频率降低了,那是因为我在恶补数据结构和算法的相关知识,相当于是从零开始学习。 找了很多视频和资料,最后发现 b 站尚硅谷的视频教程还是相对不错的,总共 195 集。每个小节都是按先概念、原理,然后代码实现的步骤讲解。如果你也准备入门数据结构和算法,我推荐可以看下这个系列教程。 阅读全文
posted @ 2020-04-03 17:30 烟雨星空 阅读(1368) 评论(0) 推荐(1) 编辑
摘要: 汉诺塔简介 最近在看数据结构和算法,遇到了一个非常有意思的问题——汉诺塔问题。 先看下百度百科是怎么定义汉诺塔的规则的: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面 阅读全文
posted @ 2020-03-23 22:36 烟雨星空 阅读(4857) 评论(0) 推荐(1) 编辑
摘要: 前言 上一篇讲解了 AQS 的独占锁部分(参看: "ReentrantLock 源码分析以及 AQS (一)" ),这一篇将介绍 AQS 的共享锁,以及基于共享锁实现读写锁分离的 ReentrantReadWriteLock。(若是遇到之前讲过的方法,将不再赘述) 先思考一下,为什么我们用读写锁分离 阅读全文
posted @ 2020-03-17 20:45 烟雨星空 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 作为程序员界的一枚小菜鸟,可谓是,从大量的 CRUD 业务中,练就了一身复制粘贴即可用的本领。 因为大家不是都说:程序 = 复制 + 百度 吗,再高级一点的就是复制 + 谷歌喽。(我不禁想,难道科学^上网就高级了?) 反正都是拿来主义嘛,代码能跑起来就完事,实在不行,删库跑路也很轻松呀 ^_^。 但 阅读全文
posted @ 2020-03-16 20:53 烟雨星空 阅读(409) 评论(2) 推荐(0) 编辑
摘要: 前言 JDK1.5 之后发布了JUC(java.util.concurrent),用于解决多线程并发问题。AQS 是一个特别重要的同步框架,很多同步类都借助于 AQS 实现了对线程同步状态的管理。 AQS 中最主要的就是独占锁和共享锁的获取和释放,以及提供了一些可中断的获取锁,超时等待锁等方法。 R 阅读全文
posted @ 2020-03-13 21:46 烟雨星空 阅读(509) 评论(0) 推荐(2) 编辑
摘要: 昨天,发生了一件非常有意思的事情。事情经过是这样的。。。 微信上有一个好友申请,备注是免费送学习资料的。对送资料我是不感冒的(因为我收藏的资料,我有信心比他的多)。但是,对于他是怎么获得我的微信这件事,我还是挺感兴趣的。 本着好奇的心态,我就同意了好友请求。我想搞清楚,这位是怎么知道我的联系方式的。 阅读全文
posted @ 2020-03-10 17:26 烟雨星空 阅读(692) 评论(4) 推荐(1) 编辑
摘要: 在 JUC 下包含了一些常用的同步工具类,今天就来详细介绍一下,CountDownLatch,CyclicBarrier,Semaphore 的使用方法以及它们之间的区别。 一、CountDownLatch 先看一下,CountDownLatch 源码的官方介绍。 意思是,它是一个同步辅助器,允许一 阅读全文
posted @ 2020-03-06 17:58 烟雨星空 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 为什么要使用阻塞队列 之前,介绍了一下 ThreadPoolExecutor 的各参数的含义( "并发编程之线程池ThreadPoolExecutor" ),其中有一个 BlockingQueue,它是一个阻塞队列。那么,小伙伴们有没有想过,为什么此处的线程池要用阻塞队列呢? 我们知道队列是先进先出 阅读全文
posted @ 2020-03-04 23:30 烟雨星空 阅读(2476) 评论(0) 推荐(2) 编辑
摘要: 本文章将要介绍的内容有以下几点,读者朋友也可先自行思考一下相关问题: 1. 线程中断 interrupt 方法怎么理解,意思就是线程中断了吗?那当前线程还能继续执行吗? 2. 判断线程是否中断的方法有几个,它们之间有什么区别? 3. LockSupport的 park/unpark 和 wait/n 阅读全文
posted @ 2020-03-01 22:45 烟雨星空 阅读(871) 评论(0) 推荐(0) 编辑
摘要: 线程的五种状态 线程从创建到销毁一般分为五种状态,如下图: 1) 新建 当用new关键字创建一个线程时,就是新建状态。 2) 就绪 调用了 start 方法之后,线程就进入了就绪阶段。此时,线程不会立即执行run方法,需要等待获取CPU资源。 3) 运行 当线程获得CPU时间片后,就会进入运行状态, 阅读全文
posted @ 2020-02-29 22:39 烟雨星空 阅读(839) 评论(0) 推荐(0) 编辑