代码改变世界

随笔分类 -  并发编程

让面试官心服口服:Thread.sleep、synchronized、LockSupport.park的线程阻塞有何区别?

2020-11-22 18:19 by tera, 2696 阅读, 收藏, 编辑
摘要: 前言 在日常编码的过程中,我们经常会使用Thread.sleep、LockSupport.park()主动阻塞线程,或者使用synchronized和Object.wait来阻塞线程保证并发安全。此时我们会发现,对于Thread.sleep和Object.wait方法是会抛出InterruptedE 阅读全文

JNI-从jvm源码分析Thread.interrupt的系统级别线程打断原理

2020-11-15 14:50 by tera, 1242 阅读, 收藏, 编辑
摘要: 前言 在java编程中,我们经常会调用Thread.sleep()方法使得线程停止运行一段时间,而Thread类中也提供了interrupt方法供我们去主动打断一个线程。那么线程挂起和打断的本质究竟是什么,本文就此问题作一个探究。 本文主要分为以下几个部分 1.interrupt的使用特点 2.jv 阅读全文

并发编程——比AtomicInteger更优的多线程计数类:LongAdder原理分析

2020-10-27 19:50 by tera, 837 阅读, 收藏, 编辑
摘要: 前言 最近在学习ConcurrentHashMap的源码,发现它采用了一种比较独特的方式对map中的元素数量进行统计,自然是要好好研究一下其原理思想,同时也能更好地理解ConcurrentHashMap本身。 本文主要思路分为以下5个部分 1.计数的使用效果 2.原理的直观图解 3.源码的细节分析 阅读全文