随笔分类 -  并发

摘要:问: 什么是偏向锁,偏向锁加锁流程是什么?? 答: makeword : 64位二进制位 偏向锁:64位二进制位中:其中 1、 表示偏向线程id的bit位都是0 & 2、锁状态位: 表示偏向锁状态 这个时候线程直接在锁对象markword的高位内存储当前线程的内存地址 步骤: 1 还要向当前的线程栈 阅读全文
posted @ 2022-02-22 00:15 笨拙的小菜鸟 阅读(756) 评论(0) 推荐(0) 编辑
摘要:浅论Lock 与X86 Cache 一致性 感谢James Zhang 师兄多年前对我的鞭策, 只是这篇文章写的晚了些, 十二年已然过去. 书接上文 重温一下 CAS 操作的伪码 bool compare_and_swap (int *accum, int *dest, int newval) { 阅读全文
posted @ 2021-11-04 07:17 笨拙的小菜鸟 阅读(141) 评论(0) 推荐(0) 编辑
摘要:问题来源于知乎的一篇帖子: 浅论Lock 与X86 Cache 一致性 - wiles super的文章 - 知乎 https://zhuanlan.zhihu.com/p/24146167 该帖子对于原子命令 cmpxchg 的分析引起了我的好奇心。 我原来对 cmpxchg 的原子性的理解没考虑 阅读全文
posted @ 2021-11-04 07:15 笨拙的小菜鸟 阅读(156) 评论(0) 推荐(0) 编辑
摘要:今天找到了新的资料,可以证明我在 上一篇文章 里的猜想是错误的。 这篇 Intel 的资料 给了关于 cache locking 更多的信息: In the days of Intel 486 processors, the lock prefix used to assert a lock on 阅读全文
posted @ 2021-11-04 07:14 笨拙的小菜鸟 阅读(415) 评论(0) 推荐(0) 编辑
摘要:LINUX内核内存屏障 ​ LINUX内核内存屏障 ​ By: David Howells dhowells@redhat.com Paul E. McKenney paulmck@linux.vnet.ibm.com 译: kouu kouucocu@126.com 出处: Linux内核文档 - 阅读全文
posted @ 2021-11-03 20:30 笨拙的小菜鸟 阅读(464) 评论(0) 推荐(0) 编辑
摘要:Why Memory Barriers中文翻译(下) 作者:linuxer 发布于:2016-1-5 18:09 分类:内核同步机制 在上一篇why memory barriers文档中,由于各种原因,有几个章节没有翻译。其实所谓的各种原因总结出一句话就是还没有明白那些章节所要表达的内容。当然,对于 阅读全文
posted @ 2021-11-03 20:27 笨拙的小菜鸟 阅读(82) 评论(0) 推荐(0) 编辑
摘要:LINUX KERNEL MEMORY BARRIERS By: David Howells dhowells@redhat.com Paul E. McKenney paulmck@linux.ibm.com Will Deacon will.deacon@arm.com Peter Zijlst 阅读全文
posted @ 2021-11-03 06:37 笨拙的小菜鸟 阅读(81) 评论(0) 推荐(0) 编辑
摘要:# Why Memory Barriers?中文翻译(上) 本文是对perfbook的附录C Why Memory Barrier的翻译,希望通过对大师原文的翻译可以弥补之前译者发布的关于memory barrier的一篇很拙劣的文章的遗憾。 本文的翻译不是一一对应的翻译,主要是领会精神,用自己的 阅读全文
posted @ 2021-11-02 06:28 笨拙的小菜鸟 阅读(307) 评论(0) 推荐(0) 编辑
摘要:线程之间为什么要通信? 通信的目的是为了更好的协作,线程无论是交替式执行,还是接力式执行,都需要进行通信告知。那么java线程是如何通信的呢,大致有以下四种方式。 Java线程的通信方式 volatile 等待/通知机制 join方式 threadLocal volatile关键字方式 volati 阅读全文
posted @ 2021-10-29 14:51 笨拙的小菜鸟 阅读(303) 评论(0) 推荐(0) 编辑
摘要:通过博客《基于JNI手动模拟Java线程》,我们知道Java线程的创建方式, 本质:就是调用操作系统底层的线程创建函数 , Linux中是pthread_create函数 那么线程加锁在操作系统又是调用什么函数呢? 查了一下是调用操作系统中的pthread_mutex_lock函数。 回到我们今天的 阅读全文
posted @ 2021-10-28 15:48 笨拙的小菜鸟 阅读(381) 评论(0) 推荐(1) 编辑
摘要: //ThreadLocal部分 // ThreadLocal介绍 官方介绍 从Java官方文档中的描述:ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说 阅读全文
posted @ 2021-10-28 15:25 笨拙的小菜鸟 阅读(136) 评论(0) 推荐(0) 编辑
摘要:SimpleDateFormat与DateTimeFormatter线程安全问题,参考阿里巴巴Java开发手册规范处理 阿里巴巴开发手册中这样说的 多线程环境下: public class MainClass { private static final SimpleDateFormat sdf = 阅读全文
posted @ 2021-10-28 15:23 笨拙的小菜鸟 阅读(1306) 评论(0) 推荐(0) 编辑
摘要:线程不安全的SimpleDateFormat 8.5 SimpleDateFormat是线程不安全的 SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是由于它是线程不安全的,多线程公用一个SimpleDateFormat实例对日期进行解析或者 阅读全文
posted @ 2021-10-28 15:22 笨拙的小菜鸟 阅读(445) 评论(0) 推荐(0) 编辑
摘要:高并发之——SimpleDateFormat类的线程安全问题和解决方案 首先问大家一个问题:你使用的SimpleDateFormat类还安全吗?我们一起带着这个问题来看本文。 提起SimpleDateFormat类,想必做过Java开发的童鞋都不会感到陌生。没错,它就是Java中提供的日期时间的转化 阅读全文
posted @ 2021-10-28 15:22 笨拙的小菜鸟 阅读(268) 评论(0) 推荐(0) 编辑
摘要:彻底搞懂AQS-重点方法精讲 ReentrantLock.java public class ReentrantLock implements Lock, java.io.Serializable { private static final long serialVersionUID = 7373 阅读全文
posted @ 2021-10-09 06:55 笨拙的小菜鸟 阅读(260) 评论(0) 推荐(0) 编辑
摘要:# Java的对象头mark word 上一篇博客我们编译了Linux源码来证明了Java中有偏向锁,但是我们从周志明大佬的《深入理解java虚拟机》的书中知道,我们可以通过分析Java对象头中MarkWord来查看是那种锁,下面是32位JVM的对象中的Mark Word图,但是随着JDK的不断升 阅读全文
posted @ 2021-09-26 18:05 笨拙的小菜鸟 阅读(140) 评论(0) 推荐(0) 编辑
摘要: Java中wait()方法为什么要放在同步块中?(lost wake-up 问题) 问:Java 多线程中 wait() 方法为什么要放在同步块中? 答:为了避免「lost wake up 问题」:,即无法唤醒问题。 临界资源 系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源 或互 阅读全文
posted @ 2021-09-25 08:22 笨拙的小菜鸟 阅读(958) 评论(0) 推荐(0) 编辑
摘要:Java虚假唤醒及如何避免虚假唤醒 先给出一段虚假唤醒的代码如下: package bat.ke.qq.com.learnjuc.thread; public class SpuriousWakeup { public static void main(String[] args) { Data2 阅读全文
posted @ 2021-09-23 22:39 笨拙的小菜鸟 阅读(215) 评论(0) 推荐(0) 编辑
摘要:Java线程的生命周期 New(新创建) Runnable(可运行) Blocked(被阻塞) Waiting(等待) Timed Waiting(计时等待) Terminated(被终止) 在我们程序编码中如果想要确定线程当前的状态,可以通过getState()方法来获取,同时我们需要注意任何线程 阅读全文
posted @ 2021-09-23 22:16 笨拙的小菜鸟 阅读(147) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示