- 博客(7)
- 收藏
- 关注
原创 ReentrantLock 的简单分析
ReentrantLockReentantLock 继承接口 Lock 并实现了接口中定义的方法,他是一种可重入锁,除了能完 成 synchronized 所能完成的所有工作外,还提供了诸如可响应中断锁、可轮询锁请求、定时锁等 避免多线程死锁的方法。Lock 接口的主要方法void lock(): 执行此方法时, 如果锁处于空闲状态, 当前线程将获取到锁. 相反, 如果锁已经 被其他线程持有, 将禁用当前线程, 直到当前线程获取到锁.。boolean tryLock():如果锁可用, 则获取锁,
2020-07-21 20:20:40
155
原创 Syschronized 关键字
Syschronized 同步锁synchronized 它可以把任意一个非 NULL 的对象当作锁。它属于独占式的悲观锁,同时属于可重 入锁。1. Synchronized 作用范围作用于方法时,锁住的是对象的实例( this );当作用于静态方法时,锁住的是 Class 实例,又因为 Class 的相关数据存储在永久带PermGen (jdk1.8 则是 metaspace ),永久带是全局共享的,因此静态方法锁相当于类的一个全局锁, 会锁所有调用该方法的线程;synchronized 作用
2020-07-21 20:13:08
220
原创 Java 各种锁类型介绍
Java 锁1. 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为 别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一次的版本号,如果一样则更新), 如果失败则要重复读-比较-写的操作。 java 中的乐观锁基本都是通过 CAS 操作实现的,CAS 是一种更新的原子操作,比较当前值跟传入 值是否一样,一样则更新,否则失败。2. 悲观锁 悲观锁是就是悲观思想,即
2020-07-21 20:05:47
1484
原创 Maven 在命令行使用插件单独下载依赖
Maven 单独下载依赖的解决办法1. 使用需求当时是在使用 CODING 这个代码管理平台做 CI 的时候有这个需求,因为没有自建的 Nexus 作为 Maven 的依赖仓库,而是直接使用了 CODING 的制品库,所以在 CI 的时候需要先下载依赖才能开始打包。2. 实现过程单独下载是使用的 mvn dependency:get 的命令如下面的依赖格式<dependency> <groupId>[GROUP_ID]</groupId> &l
2020-07-04 21:28:26
1733
原创 Java面试基础知识回顾
Java 基础知识回顾1. JDK 和 JRE 的区别先从单词含义来理解这两个的区别,JDK( Java Development Kit) 意为 Java 开发工具包,而 JRE (Java Runtime Environment)意为 Java 运行时环境。总的来说可以分为以下几个方面:从文件结构上看,JDK 是包含了 JRE 的所有文件。从功能上看,JDK 是一个完整的 SDK,集编译、运行等功能于一体,而 JRE 只提供运行时的环境。从用途上来看,JDK 一般是用在开发环境上,便于编码人
2020-07-04 21:15:08
134
原创 TCP/IP三次握手,四次挥手过程
TCP/IP 三次握手四次挥手三次握手三次握手的客户端与服务端请求交流过程大体如下图所示:第一次握手:client 主机向 server 端发送位码为 syn = 1,并随机产生一个 seq = 1234567 的数据包,server 主机由 syn = 1 知道 client 要进行联机。此时 client 进入等待连接的状态。第二次握手:server 主机收到请求后要确认联机信息,向 client 发送包含 ack = (主机 client 的 seq + 1),syn = 1,ACK =
2020-06-30 17:47:05
504
原创 二进制减法的简单过程
二进制减法的运算方法二进制减法有两种运算方法,可以使用向高位借位的办法,也可以将减法转为加法采用借位的办法不是很快捷,比较容易看错,示例如下:1 0 1 0-0 1 1 1————0 0 1 1被减数末尾的0向前一位借1,相当于10(2)-1得到1,倒数第二位被借一位后变0,继续向前一位借,以此来得到结果,如果减数大于被减数,则需将最后的结果按位取反得到结果。另外也可采用转换为加法...
2019-09-17 16:50:29
33169
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人