随笔分类 - 开发语言
摘要:一、ReentrantLock类中的方法解读。 1、lock方法。实现了接口Lock中的lock方法。这里实际上是调用了sync成员变量的lock方法来实现。所以取决于sync的实现。 2、unlock方法。实现了接口Lock中的unlock方法。这里实际上是调用了sync成员变量的release方
        阅读全文
                
摘要:一、简介。 ReentrantLock 是一个互斥锁,在基本行为和机制上与synchonized一样,只不过synchonized用方法和声明访问了隐式的锁监视器,但是ReentrantLock 做了功能上的扩展。ReentrantLock 被最后一个成功lock,但是还没unlock的线程拥有。当
        阅读全文
                
摘要:点多
        阅读全文
                
摘要:一、成员变量。 1、目录。 2、state。该变量标记为volatile,说明该变量是对所有线程可见的。作用在于每个线程改变该值,都会马上让其他线程可见,在CAS(可见锁概念与锁优化)的时候是必不可少的。在AQS类中,不会直接操作这个值,而是交由它的子类去操作和定义他的作用。 ###########
        阅读全文
                
摘要:假如java类里的成员变量是自身的对象,则新建该类对象时内存中怎么分配空间,我感觉似乎死循环了。 不过我想的肯定是错的,因为很多类的成员变量是自身对象,并且绝对无错,举个例子: 1.程序运行的时候会产生一个栈溢出错误的异常 Exception in thread “main” java.lang.S
        阅读全文
                
摘要:一、AbstractQueuedSynchronizer类介绍。 该抽象类有两个内部类,分别是静态不可继承的Node类和公有的ConditionObject类。AbstractQueuedSynchronizer的核心实现是一个双向队列,队列中的每一个元素是一个Node。Node是AbstractQ
        阅读全文
                
摘要:一、Lock源码。 1、是一个接口。一共有6个方法。 2、方法详细如下: (1)当前线程尝试获取锁。结果分两种情况,一是成功获取到锁,则返回;二是获取锁失败,则一直等待。不响应中断请求。 (2)当前线程释放掉自己所占用的锁。同时唤醒这个锁上的一个等待线程。(两个任务) (3)当前线程尝试以非公平的方
        阅读全文
                
摘要:一、概述。 Comparator和Comparable两者都属于集合框架的一部分,都是用来在对象之间进行比较的,但两者又有些许的不同,我们先通过一个例子来看一下他们的区别,然后再分别学习下它们的源码。 先来看一下Comparable的例子,定义实体类Student,实现Comparable,重写co
        阅读全文
                
摘要:##################################################################### 我们知道多线程操作共享资源时,会出现三个问题:可见性、有序性以及原子性。 一般情况下,我们采用synchronized同步锁(独占锁、互斥锁),即同一时间只有一
        阅读全文
                
摘要:一、CMPXCHG汇编指令详解。 这条指令将al\ax\eax\rax中的值与首操作数比较: 1.如果相等,第2操作数的直装载到首操作数,zf置1。(相当于相减为0,所以0标志位置位) 2.如果不等, 首操作数的值装载到al\ax\eax\rax,并将zf清0 二、举例说明。 例如: CMPXCHG
        阅读全文
                
摘要:一、动画演示。 1、https://www.scss.tcd.ie/Jeremy.Jones/vivio/caches/MESIHelp.htm 2、https://www.jianshu.com/p/81770751c11c ####################################
        阅读全文
                
摘要:一、一共11个成员变量。 二、详情介绍。 1、value值。这个是Integer类的唯一标志。最重要的实例属性。 2、最小值和最大值常量。注意,计算机里面是以补码形式保存的,因此用十六进制时,给的数据必须是一个数的补码形式赋值。这里是32位机器,所以最大值和最小值表示如下: 3、数据位数和字节数常量
        阅读全文
                
摘要:一、源码。 1、equals源码。可以看出,比较的是两者的类型相同且内容相同。即是否有相等的int类型的value值。 ##########################################################################################
        阅读全文
                
摘要:在开始详细的说明问题之前,我们先看一段代码 这段代码输出的结果是什么呢? 答案是: 是不是感到奇怪呢?为什么127的时候==是true,128的时候就变成了false?其实要回答这个问题不难。 Integer在赋值的时候会发生自动装箱操作,调用Integer的valueOf方法,那么我们看一下jav
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号