随笔分类 -  【java技术总结】

摘要:原理 适合总分任务,这个锁主要适用情景,要求某些操作全部执行完成才能继续执行后面操作,这时候就可以适用cdl来计数,每次执行完一个操作就减一,计数为0后表示全部线程执行完毕。 注意 cdl限定了总数,一般来说,如果要让全部操作执行完,总数和操作数相等即可;如果总数大于操作数,操作将会永远消耗不完而卡 阅读全文 »
posted @ 2022-10-12 13:29 求道之愚者 阅读(34) 评论(0) 推荐(0) 编辑
摘要:1.可创建线程池种类 在java.util.concurrent中提供了工具类Executors(调度器)对象来创建线程池,有四种 CachedThreadPool - 可缓存线程池 无限大、无线程创建线程,有空闲线程利用起来 FixedThreadPool - 定长线程池 固定线程总数,空闲线程用 阅读全文 »
posted @ 2022-10-12 12:21 求道之愚者 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1.线程(不)安全的类 线程安全 线程不安全 Vector ArrayList、LinkedList Properties HashSet、TreeSet StringBuffer StringBuilder HashTable HashMap 阅读全文 »
posted @ 2022-10-11 14:59 求道之愚者 阅读(18) 评论(0) 推荐(0) 编辑
摘要:Synchronized使用的三种方式: synchronized代码块 可以指定任意对象,和synchronized方法联用要指向当前对象this synchronized方法 this当前对象 synchronized静态方法 该类的字节码对象 三种方法中2和3都可以用1来等价: 锁方法和锁静态 阅读全文 »
posted @ 2022-10-10 09:38 求道之愚者 阅读(23) 评论(0) 推荐(0) 编辑
摘要:Java中创建线程的三种方式 1.继承Thread类创建线程 2.实现Runnable接口创建线程 3.使用Callable和Future创建线程 1.Thread创建线程 public class Match1 { public static void main(String[] args) { 阅读全文 »
posted @ 2022-10-10 08:39 求道之愚者 阅读(447) 评论(0) 推荐(0) 编辑
摘要:map的判空优化 向复杂map写入kv pair时,往往要先判空,防止空指针异常,即如下书写形式,但是这种形式比较麻烦,代码比较长,我们可以进一步优化,简化写法,使其更优雅 String key = "key";Map<String, List<String>> map = new HashMap< 阅读全文 »
posted @ 2022-10-08 02:10 求道之愚者 阅读(331) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示