Java Concurrency
文章平均质量分 85
Dreamer who
=== Happiness isn't something you experience; it's something you remember.
展开
-
java并发编程之Future.get() 在线程池配置RejectedExecutionHandler为ThreadPoolExecutor.DiscardPolicy策略时一直阻塞
1、我们先简单复现这种情况:package com.sdcuike.java11;import java.util.concurrent.*;import com.google.common.util.concurrent.ThreadFactoryBuilder;public class Demo { public static void main(String[] args) throws ExecutionException, InterruptedExcepti...原创 2021-04-13 00:05:56 · 863 阅读 · 3 评论 -
Java Memory Model
https://courses.cs.ut.ee/MTAT.03.279/2016_fall/uploads/Main/7-threads-jmm.pdfhttps://github.com/sdcuike/issueBlog/blob/master/7-threads-jmm%20(1).pdfhttps://docs.oracle.com/javase/specs/jls/se7/html/jls-17.htmlhttps://shipi...原创 2020-07-11 22:57:36 · 298 阅读 · 0 评论 -
java并发之synchronized解密
目录synchronized关键字主要用在4个地方:1.实例方法2.静态方法3.实例方法中的代码块4.静态方法中的代码块监视器锁(monitor lock)所属的对象是不同的JVM内部如何实现的(1)实例方法中的代码块和静态方法中的代码块通过指令monitorenter和monitorexit实现的(2)实例方法和静态方法JVM特殊处理,并没有相应的JVM...原创 2019-07-21 20:09:07 · 417 阅读 · 0 评论 -
java并发程序设计建议
java并发程序设计建议尽可能使用不可变对象在并发应用程序环境中,不可变对象 有以下优点:(1)不可变对象一旦创建,任何线程程序对其不可修改,所以不需要使用同步机制来保护它们的属性。(2)不可变对象没有数据一致性问题。但唯一的缺点就是:不能修改现有对象,而是创建新对象。其实jdk也提供了一些不可变对象,如string、BigDecimal、BigInteger及Lo原创 2018-02-04 18:15:35 · 1143 阅读 · 0 评论 -
3 Tips for volatile fields in java
3 Tips for volatile fields in javaVolatile fields are one of built-in mechanism to write multi-threaded java.Volatile variables are not cached in registers or in caches where they are hidden f转载 2018-02-03 00:41:34 · 371 阅读 · 0 评论 -
5 Tips for Performant, Thread-Safe Java From ConcurrentHashMap
java.util.concurrent.ConcurrentHashMap is a highly optimized concurrent hash map implementation. Here are 5 tips we can learn from its implementation:Disclaimer: The techniques described here incr转载 2018-02-03 00:20:56 · 385 阅读 · 0 评论 -
java并发基础之The volatile keyword
java并发基础之The volatile keywordWhy synchronized?One of the biggest changes in concurrent programming in recent years has been inthe realm of hardware. It wasn’t that many years ago that a wo原创 2016-03-19 16:08:55 · 1763 阅读 · 2 评论 -
Java 下实现锁无关数据结构
本文将介绍锁无关数据结构的应用及其相关概念,并在 Java 环境下利用 JDK 1.5 提供的一组类进行锁无关数据结构设计,从而避免基于锁的数据结构可能引发的同步问题,以改善程序的可靠性。0评论:赖 德怡 (byron321@gmail.com), 程序员、自由撰稿员2008 年 7 月 18 日内容转载 2015-01-05 15:02:27 · 994 阅读 · 0 评论 -
ConcurrentHashMap 解读(一)
一、核心思想 1、锁分离技术:ConcurrentHashMap首先将数据分成一段一段(segment)的存储,然后给每一段数据配一把锁,当一个线程占用锁访问其中一个段数据的时候,其他段的数据也能被其他线程访问。 2、 final 关键字保证HashEntery 对象的不变性,来降低执行读操作的线程在遍历链表期间对加锁的需求:ConcurrentHashMap完全允转载 2014-12-28 15:47:19 · 825 阅读 · 0 评论 -
BlockingDeque
Table of ContentsBlockingDeque UsageBlockingDeque methodsBlockingDeque Extends BlockingQueueBlockingDeque ImplementationsBlockingDeque Code ExampleThe BlockingDeque interface in the转载 2014-10-12 10:26:32 · 808 阅读 · 0 评论 -
并发编程 Promise, Future 和 Callback
在并发编程中,我们通常会用到一组非阻塞的模型:Promise,Future 和 Callback。其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这个结果可以添加 Callback 以便在任务执行成功或失败后做出对应的操作,而 Promise 交由任务执行者,任务执行者通过 Promise 可以标记任务完成或者失败。 可以说这一套模型是很多异步非阻塞架构的基础。这一套原创 2014-10-12 11:10:23 · 1333 阅读 · 0 评论 -
ScheduledExecutorService
Table of ContentsScheduledExecutorService ExampleScheduledExecutorService ImplementationsCreating a ScheduledExecutorServiceScheduledExecutorService Usageschedule (Callable task, long delay,转载 2014-10-12 10:38:55 · 858 阅读 · 0 评论 -
ReadWriteLock
Table of ContentsReadWriteLock Locking RulesReadWriteLock ImplementationsReadWriteLock Code ExampleA java.util.concurrent.locks.ReadWriteLock is an advanced thread lock mechanism. It allow转载 2014-10-12 10:38:26 · 705 阅读 · 0 评论