一、概念 1. AQS(AbstractQueuedSynchronizer),抽象队列式同步器,在java.util.concurrent.locks(JUC)包下,是除了Java自带的synchronized关键字之外的锁机制 2. AQS机制:如果请求的资源被其他线程锁定,将当前线程加入等待队 ...
分类:
编程语言 时间:
2019-10-06 09:27:54
阅读次数:
92
java中的锁 Java锁的类别 java中的锁按照不同的类别可以有如下的分类: 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级 ...
分类:
编程语言 时间:
2019-10-02 22:36:41
阅读次数:
105
简单总结了一下在原子结构的基础上的Zeeman效应。很久之前就知道,这次算是复习,顺便计算一下。仅限于LS耦合,并且假设核自旋是0. 后面可能会考虑上核自旋非零的原子。 弱场下原子的Zeeman效应 把电子运动视为经典带电小球的圆周运动,按照电磁学,得到的磁矩为$\boldsymbol{\mu}=q ...
分类:
其他好文 时间:
2019-09-30 14:51:56
阅读次数:
204
1.结构 1.7 segment+HashEntity+Unsafe 1.8 移除Segment,使锁的粒度更小,Synchronized+CAS+Node+Unsafe 2. put() 1.7 先定位 Segment,再定位桶, put 全程加锁,没有获取锁的线程提前找桶的位置,并最多自旋64次 ...
分类:
其他好文 时间:
2019-09-29 22:13:19
阅读次数:
118
理解锁的基础知识 如果想要透彻的理解Java锁的来龙去脉,需要先了解以下基础知识。 基础知识之一:锁的类型 锁从宏观上分类,分为悲观锁与乐观锁。 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间 ...
分类:
编程语言 时间:
2019-09-25 12:57:48
阅读次数:
104
Jdk1.6之后对锁的优化 偏向锁 偏向锁的意思就是,偏向于第一个获取该资源的锁,如果在接下来的过程中没有其他的线程获取到该锁,那么该获取到锁的线程将不需要获取同步的操作 自旋锁 竞争锁的线程如果没有获取到锁将会被挂起,当持有锁的线程释放掉锁的话将会被唤醒,这样挂起唤醒的操作效率很低,所以出现了自旋 ...
分类:
其他好文 时间:
2019-09-22 23:46:09
阅读次数:
118
常用多线程方法 可重入锁 ? ReentrantLock类、synchronized关键字,属于悲观锁。 ? 可重入锁,即递归锁。指在同一线程内,外层函数获得锁之后,内层递归函数仍然可以获得该锁。 ? 作用:防止在同一线程中多次获取锁而导致死锁发生。 自旋锁 ? java.util.concurre ...
分类:
编程语言 时间:
2019-09-09 21:09:47
阅读次数:
131
1、前言 在Linux内核源码中,除了简洁的list链表还有klist链表,它是list链表的线程安全版本,在结构中提供了整个链表的自旋锁,对链表节点查找、插入和删除等操作,都需要先获得这个自旋锁,klist链表节点数据结构klist_node引入了引用计数,只有当节点的的引用计数为0时,才允许该节 ...
分类:
系统相关 时间:
2019-09-09 19:08:17
阅读次数:
109
转自链接:https://www.nowcoder.com/discuss/241930 1. synchronized的底层实现原理是什么 2. HashMap的扩容机制能讲解一下吗 3. mysql的binlog用过吗 4. final关键词修饰对象时,对象里面的属性能发生改变吗 5. 如何用R ...
分类:
其他好文 时间:
2019-09-02 19:30:29
阅读次数:
104
锁的分类 自旋锁: 线程状态及上下文切换消耗系统资源,当访问共享资源的时间短,频繁上下文切换不值得。jvm实现,使线程在没获得锁的时候,不被挂起,转而执行空循环,循环几次之后,如果还没能获得锁,则被挂起。 阻塞锁:阻塞锁改变了线程的运行状态,让线程进入阻塞状态进行等待,当获得相应的信号(唤醒或者时间 ...
分类:
编程语言 时间:
2019-09-01 10:57:54
阅读次数:
82