摘要: 什么是ThreadLocal? ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。 测试代码: package com.javaBase.LineDistance; /** * 〈一句话功能简述〉; * 〈功能详 阅读全文
posted @ 2022-03-08 09:13 高压锅里的大萝卜 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 注意:该随笔内容完全引自http://wsmajunfeng.iteye.com/blog/1629354,写的很好,非常感谢,复制过来算是个积累,怕以后找不到。 一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高 阅读全文
posted @ 2022-03-07 16:22 高压锅里的大萝卜 阅读(61) 评论(0) 推荐(0) 编辑
摘要: hotspot x86平台上的内存屏障的实现依赖于lock指令,而Intel的lock指令的实现依赖于缓存一致性协议(例如MESI)。 本文只介绍hotspot X86平台的内存屏障的实现,没有任何关于其他平台是怎么实现内存屏障的内容。 一、字节码解释器源码分析验证hotspot字节码解释器在处理p 阅读全文
posted @ 2022-03-07 09:31 高压锅里的大萝卜 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。 所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。 而 Thread.interrupt 的作用其实也不是中断线程,而是「通知线程应该中断了」, 具体到底中断还是继 阅读全文
posted @ 2022-03-04 17:39 高压锅里的大萝卜 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 为什么会有happens-before 规则? 因为jvm会对代码进行编译优化,指令会出现重排序的情况,为了避免编译优化对并发编程安全性的影响,需要happens-before规则定义一些禁止编译优化的场景,保证并发编程的正确性。 主要解决多线程的可见性和排序性,解决不了原子性 public cla 阅读全文
posted @ 2022-03-04 16:31 高压锅里的大萝卜 阅读(59) 评论(0) 推荐(0) 编辑
摘要: Collection<E>是Java集合框架中的基本接口; Collections是Java集合框架提供的一个工具类,其中包含了大量用于操作或返回集合的静态方法。 1) 排序(Sort)使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 阅读全文
posted @ 2022-03-04 15:03 高压锅里的大萝卜 阅读(163) 评论(0) 推荐(0) 编辑
摘要: package java.util; public interface Enumeration<E> { boolean hasMoreElements(); E nextElement(); } public interface Iterator<E> { boolean hasNext(); E 阅读全文
posted @ 2022-03-04 14:34 高压锅里的大萝卜 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器)。使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。 但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以 阅读全文
posted @ 2022-03-04 14:30 高压锅里的大萝卜 阅读(46) 评论(0) 推荐(0) 编辑
摘要: HashSet是最常用的Set集合之一,可以保证元素的唯一性。 底层原理 HashSet底层完全就是在HashMap的基础上包了一层,只不过存储的时候value是默认存储了一个Object的静态常量,取的时候也是只返回key,所以看起来就像List一样。 构造方法 可以看到四个构造方法都是初始化一个 阅读全文
posted @ 2022-03-04 13:57 高压锅里的大萝卜 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 本文将用到Java内存模型的happens-before偏序关系(下文将简称为hb)以及ConcurrentHashMap的底层模型相关的知识。happens-before相关内容参见:JLS §17.4.5. Happens-before Order、深入理解Java内存模型以及Happens b 阅读全文
posted @ 2022-03-04 13:20 高压锅里的大萝卜 阅读(179) 评论(0) 推荐(1) 编辑