并发
文章平均质量分 95
等一杯咖啡
未曾踏足山巅,时常坠落低谷,前者追逐梦想,后者受益良多...
展开
-
Java并发——并发编程挑战
前言I. 上下文切换即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,==时间片一般是几十毫秒(ms)==。CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态...原创 2018-09-11 00:43:06 · 316 阅读 · 0 评论 -
Java并发——volatile 详解
前言本文为个人学习转载,文章出自:Java 之 volatile 详解若有侵权,请联系我,立即删除!简介Volatile可以看做是轻量级的 Synchronized,它只保证了共享变量的可见性。在线程 A 修改被 volatile 修饰的共享变量之后,线程 B 能够读取到正确的值。 java 在多线程中操作共享变量的过程中,会存在指令重排序与共享变量工作内存缓存的问题。java 内存...转载 2018-09-27 00:48:51 · 298 阅读 · 0 评论 -
Java并发——CAS 的原理
前言本文为个人学习转载,文章出自:并发编程之 CAS 的原理若有侵权,请联系我,立即删除!简介在并发编程中,锁是消耗性能的操作,同一时间只能有一个线程进入同步块修改变量的值,比如下面的代码:synchronized void function(){ a = a++;}如果不加 synchronized 的话,多线程修改 a 的值就会导致结果不正确,出现线程安全问题。但锁...转载 2018-10-03 23:57:34 · 357 阅读 · 0 评论 -
Java并发——synchronized
前言本文为个人学习转载,文章出自:线程安全(中)–彻底搞懂synchronized(从偏向锁到重量级锁)若有侵权,请联系我,立即删除!简介接触过线程安全的同学想必都使用过synchronized这个关键字,在java同步代码快中,synchronized的使用方式无非有两个:通过对一个对象进行加锁来实现同步,如下面代码。synchronized(lockObject){ ...转载 2018-09-28 00:23:58 · 198 阅读 · 0 评论 -
Java并发——JMM
前言本文为个人学习转载,文章出自:再有人问你Java内存模型是什么,就把这篇文章发给他若有侵权,请联系我,立即删除!简介网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底...转载 2018-10-11 00:36:42 · 304 阅读 · 0 评论 -
Java并发——缓存一致性
I. CPU多级缓存CPU的时钟频率非常的快,跑起来的速度远远超过了内存、硬盘。《码农翻身》形象的比喻CPU为阿甘,跑的速度是内存的100倍,硬盘的1000多万倍。如果直接靠CPU直接和内存打交道,那么CPU要等待太久,浪费资源。我们平时编写的程序中,包含着很多连续创建的数组、对象,各种循环、递归、调用同一函数等,其实本质上符合了局部性原理。局部性原理具体是指在CPU访问存储设备时,无论是存取...原创 2018-11-24 10:57:17 · 2224 阅读 · 0 评论 -
Jdk源码——AQS同步队列解析
前言本文主要参考自《Java 并发编程的艺术》第五章内容,结合源码对书中内容进行分析补充。I. Lock接口在 Lock 接口出现之前,Java程序是靠 synchronized 关键字实现锁功能的,而 Java SE 5 之后,并发包中新增了 Lock 接口(以及相关实现类)用来实现锁功能,它提供了与 synchronized 关键字类似的同步功能,只是在使用时需要显式地获取和释放锁。...原创 2018-12-26 19:40:11 · 483 阅读 · 0 评论 -
细说分布式锁实现
Redis分布式锁获取锁当一个进程前来请求分布式锁,首先通过 setnx 来尝试获取锁,如果获取锁成功,OK,设置好过期时间,可以返回去干自己事情了。如果 setnx 没获取成功,事情麻烦了,说明肯定有人拿到锁了。这个时候就要看看拿锁的进程是不是该让让位了——比较当前时间和锁里设置的过期时间(通过 get 查看),如果没到过期时间,好吧,自己就只好放弃或者继续等待了。如果发现当前时间已经超过过...原创 2019-09-20 15:36:03 · 470 阅读 · 1 评论