博客专栏  >  架构   >  Java 并发编程三两事

Java 并发编程三两事

并发编程一直是Java的重难点,希望在梳理知识点的同时,也能给大家分享一些我的收获。

关注
3 已关注
10篇博文
  • 偏向锁、轻量锁、重量锁的理解

    java中每个对象都可作为锁,锁有四种级别,按照量级从轻到重分为:无锁、偏向锁、轻量级锁、重量级锁。并且锁只能升级不能降级。 在讲这三个锁之前,我先给大家讲清楚自旋和对象头的概念。 自旋 现...

    2018-03-04 12:59
    250
  • java 并发编程之 ThreadLocal

    ThreadLocal在Spring中发挥着重要的作用,在管理request作用域的Bean、事务管理、任务调度、AOP等模块都出现了它们的身影,起着举足轻重的作用。要想了解Spring事务管理的底层...

    2018-01-11 16:27
    103
  • 线程池参数解析

    线程池不恰当的设置会导致效率低下,设置低于单线程的效率。corePoolSize,核心线程数的个数。 当线程池被创建时,默认的情况下是没有线程产生的,除非调用了prestartCoreThread(...

    2017-12-06 15:12
    241
  • Java并发编程 之 指令重排序

    指令重排序 重排序的目的是提高运行并发度,发生在编译器和处理器阶段,遵循as-if-serial语义(不管怎么重排序,单线程程序的执行结果不能改变),也就是重排序所带来的问题是针对多线程的。 重排...

    2017-09-25 11:47
    340
  • Java并发编程 之 阻塞队列和CountDownLatch

    前几天看到一个面试题目:有一个长度为2000的字符串,开三个线程去判断字符串中”u51”的个数。 当时看到这个题目的时候,对并发编程是没有什么经验的,在实际项目多线程的应用也只有一两次。最近在恶补《J...

    2017-09-28 13:46
    253
  • Java并发编程 之 Condition与ReentrantLock的使用

    先来看一道笔试题(迅雷的笔试题):编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推...

    2017-09-29 14:48
    218
  • Java并发编程 之 同步队列与等待队列

    在上一篇博客中,我简单的介绍了对Condition和ReentrantLock的使用,但是想要更好的掌握多线程编程,单单会用是不够的。 这篇我会针对Condition方法中的await和signal的...

    2017-09-29 16:57
    1529
  • Java并发编程 之 volatile

    国庆已经结束了,本该在国庆前就应该做好这篇笔记的,怎奈自己太懒,就在今天把前几天的知识梳理一下。在前几篇的博客介绍了一点并发编程的相关知识,今天我对volatile的原理简单的阐述一下。要想理解vol...

    2017-10-09 15:08
    197
  • Java并发编程 之 HashMap线程不安全

    我想在平时的多线程编程中,容器的使用是很普遍的,但是你有没有考虑过有些容器是不安全的,如Haspmap、ArrayList。这里讲解一下Hashmap不安去体现在哪里。插入时不安全:如果有两个线程A和...

    2017-10-11 14:50
    185
  • Java并发编程 之 乐观锁和悲观锁

    悲观锁可以把悲观锁想成一个很小心的人,无论做什么操作之前,都要去加个锁,这样别人想拿这个数据就会block直到它拿到锁。但是在效率方面,处理加锁的机制会产生额外的开销,还有增加产生死锁的机会。另外如果...

    2017-10-31 20:49
    471
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部