wolf_love666的博客

微信公众号【小诚信驿站】 author:wolf_love666

排序:
默认
按更新时间
按访问量
RSS订阅

J.U.C-Atomic

前言:仿佛现在学习都特么为了面试了。。。。妹的!世风日下,不管网上如何瞎编,尽量高分答题,我不要求满分,只要求满分10分的时候,我拿9分!打卡2019-06-25日,目标8月底离职完毕! 并发包下的原子类 1)布尔类型的AtomicBoolean 2)整型AtomicInteger、At...

2019-06-25 14:54:57

阅读数 26

评论数 0

J.U.C.lock之循环屏障CyclicBrrier

目的:允许一组互相等待的线程,达到一个共同的障碍点。 循环屏障可以实现一组固定的线程偶尔互相等待。这个屏障被叫做循环,因为在等待线程释放后它可以被重用。 在这组所有线程到达屏障点完成任务释放线程之前,和最后一个线程到达后,线程循环屏障支持每一个屏障点执行一次线程命令。 比喻:无论是一年级学生还是二...

2019-04-17 15:37:03

阅读数 37

评论数 0

J.U.C之CopyOnWriteArrayList

并发包中的并发List只有CopyOnWriteArrayList。 实现原理:利用写时复制策略,在底层进行修改操作的时候都是通过复制的数组(快照)上进行。 如何控制并发安全: 上述类图中,每个CopyOnWriteArrayList对象里面有一个array数组对象用来存放具体元素,R...

2019-04-04 06:49:28

阅读数 25

评论数 0

并发编程(六)CAS原理+ABA问题的解决

乐观锁和悲观锁 Synchronized属于悲观锁,悲观地认为程序中的并发情况严重,所以严防死守。CAS属于乐观锁,乐观地认为程序中的并发情况不那么严重,所以让线程不断去尝试更新。 性能对比: Synchronized关键字会让没有得到锁资源的线程进入blocked状态,而后在争夺到锁资源后恢复为...

2019-02-19 11:13:01

阅读数 47

评论数 0

并发编程(五)锁优化+LongAdder+伪共享+缓存行+CAS+XADD

前提知识了解: 1. 什么是伪共享 CPU缓存系统中是以缓存行(cache line)为单位存储的。目前主流的CPU Cache的Cache Line大小都是64Bytes。在多线程情况下,如果需要修改“共享同一个缓存行的变量”,就会无意中影响彼此的性能,这就是伪共享(False Sharing)...

2019-02-19 10:56:15

阅读数 79

评论数 0

并发编程(一)Java并发编程的知识点梳理

线程安全概念: 线程安全类认为是一个在并发环境和单线程环境中都不会被破坏的类。 比如无状态的类的操作计算: 既不包含任何域,也不包含任何对其他类中域的引用。计算过程中的临时状态仅存在于线程栈上的局部变量中,并且只能由正在执行的线程访问。 无状态的对象一定是线程安全的。 原子性与非原子性带来的问...

2019-02-02 18:29:28

阅读数 123

评论数 0

并发编程(三)高级篇

预告准备:一共分为三个部分。初级为了便于理解可以直接看第三部分,中级看所有,高级查缺补漏。 一、Java中的多线程 应用程序中有两种类型的线程 - 用户线程和守护程序线程。当我们启动一个应用程序时,main是第一个创建的用户线程,我们可以创建多个用户线程以及守护进程线程。执行所有用户线程后,JVM...

2018-12-12 18:02:05

阅读数 258

评论数 0

并发编程(二)基础篇

基础概念: 进程:是一个正在执行中的程序。每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。 线程:就是进程中的一个独立的控制单元。线程在控制着进程的执行。一个进程中至少有一个线程。 运行结果每一次都不同:因为多个线程都获取cpu的执行权,在某一个时刻,只能有一个程序...

2016-09-23 18:37:29

阅读数 1327

评论数 0

提示
确定要删除当前文章?
取消 删除