会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
我的博客
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
下一页
2020年11月15日
【Java集合框架001】为什么重写equals就要重写hashcode?
摘要: 一、前言 如果面试官问:你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法? 遇到这样的问题,应该怎样回答呢?其实,equals和hashCode都是Object对象中的非final方法,它们设计的目的就是被用来覆盖(override)的,所以在程
阅读全文
posted @ 2020-11-15 13:44 gjjjfvjtbnj
阅读(252)
评论(0)
推荐(0)
2020年11月10日
【Java并发011】原理层面:CAS操作全解析
摘要: 一、前言 volatile关键字是Java51个关键字中用的比较少的一个,它是一个与多线程并发的关键字,但是实际开发中,一般不会用到,使用synchronize+wait()+notify()/notifyAll()或 lock+await()+signal()/signalAll() 组合就好了,
阅读全文
posted @ 2020-11-10 16:58 gjjjfvjtbnj
阅读(280)
评论(0)
推荐(0)
【Java并发010】使用层面:发令枪CountDownLatch全解析
摘要: 一、前言 CountDownLatch是在java1.5被引入,存在于java.util.cucurrent包中,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。 二、CountDownLatch概要 Coun
阅读全文
posted @ 2020-11-10 16:54 gjjjfvjtbnj
阅读(457)
评论(0)
推荐(0)
【Java并发009】原理层面:ThreadLocal类全解析
摘要: 一、前言 在Java多线程模块中,ThreadLocal是比较重要的知识点,虽然ThreadLocal类位于java.lang包,但是这个类基本上仅用于多线程。 二、ThreadLocal类概要 2.1 由来 + 含义 + 使用场景 由来:一般的变量是多个线程共享,如果想一个线程独享一个变量,就需要
阅读全文
posted @ 2020-11-10 16:51 gjjjfvjtbnj
阅读(130)
评论(0)
推荐(0)
2020年11月9日
【Java并发008】原理层面:ReentrantLock中 await()、signal()/signalAll()全解析
摘要: 一、前言 上篇的文章中我们介绍了AQS源码中lock方法和unlock方法,这两个方法主要是用来解决并发中互斥的问题,这篇文章我们主要介绍AQS中用来解决线程同步问题的await方法、signal方法和signalAll方法,这几个方法主要对应的是synchronized中的wait方法、notif
阅读全文
posted @ 2020-11-09 17:09 gjjjfvjtbnj
阅读(980)
评论(0)
推荐(0)
【Java并发007】原理层面:ReentrantLock中lock()、unlock()全解析
摘要: 一、前言 Java线程同步两种方式,synchronized关键字和Lock锁机制,其中,AQS队列就是Lock锁实现公平加锁的底层支持。 二、AQS源码对于lock.lock()的实现 2.1 AQS类 + 内部Node类 2.1.1 AQS类结构示意图 首先我们要看看AQS的结构的类图 从AQS
阅读全文
posted @ 2020-11-09 16:34 gjjjfvjtbnj
阅读(239)
评论(0)
推荐(0)
【Java并发006】使用层面:Lock锁机制全解析
摘要: 一、前言 二、synchronized局限性 + Lock锁机制的引入 2.1 synchronized局限性 第一,使用synchronized,其他线程只能等待直到持有锁的线程执行完释放锁(synchronized释放锁有且仅有两种情况) 如果一个代码块被synchronized修饰了,当一个线
阅读全文
posted @ 2020-11-09 16:27 gjjjfvjtbnj
阅读(271)
评论(0)
推荐(0)
2020年11月1日
【Java并发005】原理层面:volatile关键字全解析
摘要: 一、前言 在Java 5之前,volatile是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与JMM(Jav
阅读全文
posted @ 2020-11-01 13:09 gjjjfvjtbnj
阅读(138)
评论(0)
推荐(0)
【Java并发004】原理层面:synchronized关键字全解析
摘要: 一、前言 synchronized关键字在需要原子性、可见性和有序性这三种特性的时候都可以作为其中一种解决方案,看起来是“万能”的。的确,大部分并发控制操作都能使用synchronized来完成。在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java
阅读全文
posted @ 2020-11-01 13:01 gjjjfvjtbnj
阅读(327)
评论(0)
推荐(0)
【Java 并发003】原理层面:Java并发三特性全解析
摘要: 一、前言 不管什么语言,并发的编程都是在高级的部分,因为并发的涉及的知识太广,不单单是操作系统的知识,还有计算机的组成的知识等等。说到底,这些年硬件的不断的发展,但是一直有一个核心的矛盾在:CPU、内存、I/O设备的三者的速度的差异。这就是所有的并发的源头。 CPU与内存:缓存,CPU增加了缓存,以
阅读全文
posted @ 2020-11-01 12:48 gjjjfvjtbnj
阅读(208)
评论(0)
推荐(0)
上一页
1
2
3
下一页