
java锁机制
心之所往、
有时候,相遇是缘份,亦是劫数。这世上,有命中注定,就有在劫难逃。当这两者出现在同一个人身上时,那个人既是你命中注定的缘分,亦是你躲不过的劫数。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JUC -死锁编码及定位分析
JUC -死锁编码及定位分析1,是什么1.1 是什么:死锁 是指两个 或 两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉那它们都将无法推进下去,如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性很低,否则就会因争抢有限的资源而陷入死锁。1.2 产生死锁的主要原因1,系统资源不足2,进程运行推进的顺序不合适3,资源分配不当2,代码死锁...原创 2020-03-08 21:10:09 · 214 阅读 · 0 评论 -
JUC -阻塞队列
JUC -阻塞队列ArrayBlockingQueue:是一个基于数组结构的有界阻塞队列,次队列按 FIFO(先进先出)原则对匀速进行排序。LinkedBlockingQueue:一个基于链表结构的阻塞队列,次队列按 FIFO(先进先出)排序元素,吞吐量通常要高于 ArrayBlockingQueue。SynchronousQueue:一个不存储元素的阻塞队列。每个插入操作必须等到另一个线...原创 2020-03-08 21:34:45 · 178 阅读 · 0 评论 -
JUC - Lock 锁的多个条件Condition实现多线程调度及线程精确唤醒
JUC - Lock 锁的多个条件Condition实现线程精确唤醒题目:多个线程按顺序调用,实现A->B->C三个线程启动,要求如下:AA打印5次,BB打印10次,CC打印15次紧接着AA打印5次,BB打印10次,CC打印15次package com.test.mianshi.juc.生产者与消费者;import javax.swing.*;import java...原创 2020-03-08 21:35:09 · 457 阅读 · 1 评论 -
Java - 独占锁(写锁)/共享锁(读锁)/互斥锁
Java - 独占锁(写锁)/共享锁(读锁)/互斥锁独占锁(写锁):共享锁:多个线程同时读一个资源没有任何问题,所以为了满足并发量,读取共享资源应该可以同时进行。但是如果有一个线程想去写共享资源来,就不应该再由其他线程可以对该资源进行读或写小总结:读-读 能共存读-写 不能共存写-写 不能共存...原创 2020-03-08 21:38:13 · 504 阅读 · 0 评论 -
Java - 自旋锁(spinlock)
理论 – 代码 – 小总结Java - 自旋锁(spinlock)是指尝试获取锁的线程不会立即阻塞,而是采用 循环 的方式 尝试获取锁,这样的好处是减少线程上下文切换的消耗,缺点是会消耗 CPU。例如:AtomicInteger 的 getAndIncrement() 方法中通过 Unsafe 的 compareAndSwapInt() 方法 类似自旋的方式private static ...原创 2020-03-08 21:38:51 · 333 阅读 · 0 评论 -
Java - 可重入锁(也叫递归锁)
Java - 可重入锁(也叫递归锁)指的是同一个线程 外层 函数获得锁之后,内层 递归函数仍然能够获取该锁的代码,在同一个线程在 外层方法 获取锁的时候,在进入 内层方法 会自动获取锁也即是说,线程可以进入任何一个它已经拥有的锁 所同步着的代码块。...原创 2020-03-08 21:39:19 · 214 阅读 · 0 评论 -
java - 公平 和 非公平锁
java - 公平 和 非公平锁公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到。公平锁,就是很公平,在并发环境中,每个线程在获取锁是会先查看此锁的等待队列,如果为空,或者当前线程时等待队列的第一个,就占有锁,否则就会加到等待队列中,以后会按照 FIFO 的规则从队列中渠道自己。非公平锁: 是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线...原创 2020-03-08 23:13:56 · 133 阅读 · 0 评论 -
java锁机制-读写锁
java锁机制-读写锁定义相比 java 中的锁(Locks in Java)里 Lock 实现,读写锁更复杂一些。假设你的程序中设计到对一些共享资源的读和写操作,且写操作没有读操作那么频繁。在没有写操作的时候,两个线程同时读一个资源没有任何问题,所以应该允许多个线程能在同时读取共享资源。但是如果有一个线程想去写这些共享资源,就不应该再由其他线程对资源进行读或写(即:读-读可以共存,读-写不能...原创 2020-03-08 21:25:29 · 166 阅读 · 0 评论 -
java锁机制-重入锁
java锁机制-重入锁定义锁作为并发共享数据,保证一致性的工具,在 java 平台有很多实现(如:synchronized 和 ReentrantLock 等)。这些已经提供的锁为我们开发提供了便利。重入锁,也叫递归锁,指的是同一个线程,外层函数获得锁之后,内层递归函数仍然有获取该锁的代码,但不受影响。即一个方法拿个锁之后在这个方法中调用了其他方法时,这个锁会传递给被调用的方法。代码示例...原创 2020-03-08 21:26:16 · 207 阅读 · 0 评论 -
多线程-java锁机制-乐观锁与悲观锁
多线程-java锁机制-乐观锁与悲观锁场景当多个请求同时操作数据库时,首先将订单状态改为已支付,在金额加上 200 ,再同时并发场景查询条件下,会造成重复通知(重读)。悲观锁定义:悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时加上排他锁。每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会 block 直到它拿到锁。传统的关系型数据...原创 2020-03-08 21:27:53 · 146 阅读 · 0 评论