一、 概述 本文首先介绍Lock接口、ReentrantLock的类层次结构以及锁功能模板类AbstractQueuedSynchronizer的简单原理,然后通过分析ReentrantLock的lock方法和unlock方法,来解释ReentrantLock的内部原理,最后做一个总结。本文不涉及R ...
分类:
其他好文 时间:
2020-06-30 14:29:17
阅读次数:
38
go中的copy,一般习惯来讲都是值拷贝,但是这种拷贝存在的问题是锁对象的“失效” 如何对一个对象进行nocopy处理,下面是一种方式 package main import ( "fmt" ) type noCopy struct{} // Lock is a no-op used by -cop ...
分类:
其他好文 时间:
2020-06-29 22:58:40
阅读次数:
63
线程安全 当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的 Brian Goetz 多线程安全问题是什么? 问题: 多线程在修改共享资源的时 ...
分类:
编程语言 时间:
2020-06-26 18:37:58
阅读次数:
78
下载地址: hsdis linux下将hsdis.so拷贝到 /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/lib/server 目录下(相对应于你的jdk目录lib/server下) window好像也差不多 可以先测试下是否成功 ja ...
分类:
编程语言 时间:
2020-06-25 12:08:13
阅读次数:
66
1. 概念 自旋锁的目的是在短期间内进行轻量级的锁定,解决对某项共享资源的互斥使用,在等待锁重新可用期间进行自旋,所以自旋锁不应该被持有时间过长,如果需要长时间锁定的话,推荐使用信号量。实际操作的数据结构如下: 2. 获取锁 最终执行的代码是体系结构相关的自旋锁实现:arch_spin_lock。 ...
分类:
其他好文 时间:
2020-06-23 14:59:38
阅读次数:
51
互斥锁(互斥量) 创建互斥锁 pthread_mutex_t mutex; 初始化互斥锁 pthread_mutex_init(pthread_mutex_t* mutex, const pthread_mutexattr_t* attr); 销毁互斥锁 pthread_mutex_unlock(p ...
分类:
编程语言 时间:
2020-06-13 00:08:25
阅读次数:
67
参考官方文档https://docs.gitlab.com/ee/security/reset_root_password.htmlhttps://docs.gitlab.com/ee/security/unlock_user.html操作背景Gitlab是Docker部署,Jenkins账号登陆不了,开始是怀疑密码不对,通过控制台登陆重置了密码,还是登陆不了,怀疑是Jenkins用户被锁住了(默
分类:
其他好文 时间:
2020-06-11 23:16:57
阅读次数:
309
简述 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果 定义模型的目标 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到 ...
分类:
编程语言 时间:
2020-06-11 00:50:57
阅读次数:
70
举例来说明锁的可重入性 public class UnReentrant{ Lock lock = new Lock(); public void outer(){ lock.lock(); inner(); lock.unlock(); } public void inner(){ lock.lo ...
分类:
其他好文 时间:
2020-06-08 23:59:53
阅读次数:
143
1.滑动解锁 例1:https://www.helloweba.net/demo/2017/unlock/中的滑动解锁 代码如下: slide-to-unlock-handle:表示滑块 slide-to-unlock-progress:滑过后的背景色 from time import sleep ...
分类:
其他好文 时间:
2020-06-08 19:01:48
阅读次数:
80