Loading

摘要: 前言 前面写过一篇关于生产者消费者问题的博客,但是通过对JUC的学习,发现前面写的存在不少问题,比如使用synchronized锁,以及没有做好防止线程虚假唤醒的措施,故在此重新完善。 synchronized与ReentranLock的比较 前面对ReentranLock的加锁解锁原理的源代码进行 阅读全文
posted @ 2020-06-25 22:48 Icdd 阅读(79) 评论(0) 推荐(0)
摘要: 题目描述 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+ 阅读全文
posted @ 2020-06-25 16:55 Icdd 阅读(74) 评论(0) 推荐(0)
摘要: 1. ReentranLock简介 ReentranLock是自JDK1.5引入的基于API层面的互斥锁,它与sychronized有着一些异同。 相同点:都是独占式的可重入锁, 不同点:ReentranLock的加锁和解锁过程需要手动去控制,synchronized的加锁和解锁是通过JVM来实现的 阅读全文
posted @ 2020-06-25 15:49 Icdd 阅读(159) 评论(0) 推荐(0)
摘要: 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子.例如 [ a b c e s f c s a d e e ] 阅读全文
posted @ 2020-06-23 22:40 Icdd 阅读(160) 评论(0) 推荐(0)
摘要: Java中集合存在的线程安全问题 Java中,ArrayList、Hashset、HasMap等都是线程不安全的,主要原因就是其中许多操作(例如ArrayList中的add操作)是非原子的操作,这就导致多线程在操作这些集合类的时候会产生线程的安全性问题。 例如: List<Integer> list 阅读全文
posted @ 2020-06-17 22:07 Icdd 阅读(278) 评论(0) 推荐(0)
摘要: 描述 采取某种方法使得整个软件系统之中,保证某个类只存在一个对象,减少对象的创建次数从而减少系统的资源开销。 应用场景 网站的计数器 应用程序的日志 数据库连接池 项目中读取配置文件的类 Application也是单例的典型应用 Windows的Task Manager(任务管理器) Windows 阅读全文
posted @ 2020-02-21 15:36 Icdd 阅读(100) 评论(0) 推荐(0)