代码改变世界

AQS2:可重入和阻塞

2018-01-11 16:55 by faunjoe88, 389 阅读, 0 推荐, 收藏, 编辑
摘要:本文仅基于可重入的锁(ReentrantLock类)对AQS做分析,只考虑独占锁。 共享锁与独占锁的更多信息,以后再讨论。 AQS中队列的实现 节点Node AQS的节点包含了对前置节点的引用pre,后置节点的引用next,以及持有节点的线程thread. AQS的属性 CLH队列中只有tail节点 阅读全文

AQS(一) 对CLH队列的增强

2018-01-11 16:52 by faunjoe88, 882 阅读, 0 推荐, 收藏, 编辑
摘要:基本概念 AQS(AbstractQueuedSynchronizer),顾名思义,是一个抽象的队列同步器。 先进先出的等待队列 这个等待队列,是基于CLH锁实现的。 CLH锁是以发明人命名的自旋锁,这个锁是一个基于队列的自旋锁,是对SpinLock,TicketLock的进化。 具体可以参考另外一 阅读全文

解析Java finally

2018-01-11 16:48 by faunjoe88, 0 阅读, 0 推荐, 收藏, 编辑
该文被密码保护。 阅读全文

SSH免密码登录Linux服务器

2018-01-04 18:27 by faunjoe88, 209 阅读, 0 推荐, 收藏, 编辑
摘要:一、如果本地没有创建ssh的秘钥对,则第一步需要先创建本地主机的ssh秘钥对 Linux或者MacOS可以直接用ssh-keygen命令在本地主机生成密钥对: 这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。 注:不要输入Ente 阅读全文

【转】不错的linux下通用的java程序启动脚本

2018-01-04 18:24 by faunjoe88, 203 阅读, 0 推荐, 收藏, 编辑
摘要:虽然写起动shell的频率非常不高。。。但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell。 在网上找到一个挺好的通用shell脚本。 只需要修改一些配置变量,就可以用来做起动脚本了。 并且除了能起动、还支持关闭、重启、查看是否正在运行的功能。 原文地址:http:/ 阅读全文

javap(反汇编命令)

2017-12-27 16:49 by faunjoe88, 434 阅读, 0 推荐, 收藏, 编辑
摘要:用法: javap <options> <classes> 其中, 可能的选项包括: -help --help -? 输出此用法消息 -version 版本信息 -v -verbose 输出附加信息 -l 输出行号和本地变量表 -public 仅显示公共类和成员 -protected 显示受保护的/ 阅读全文

JAVA字节码解析

2017-12-27 16:32 by faunjoe88, 1463 阅读, 1 推荐, 收藏, 编辑
摘要:Java字节码指令 Java 字节码指令及javap 使用说明 ### java字节码指令列表 JVM指令助记符 变量到操作数栈:iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload,aload_ 操作数栈到变量:istore,istor 阅读全文

jdbc驱动的类加载过程

2017-12-26 18:21 by faunjoe88, 852 阅读, 0 推荐, 收藏, 编辑
摘要:分析一下jdbc工作过程中涉及到的类加载流程,重点是想看看在双亲委派模型不适用的时候,如何解决。 第一步,加载数据库的驱动 Class.forName 方法会根据类的全路径名称去加载对应的class文件,生成类型,并初始化类型。也就是说static语句块会执行。 下面来看看 com.mysql.jd 阅读全文

GetClassLoader和GetCallerClass的使用

2017-12-26 18:14 by faunjoe88, 567 阅读, 0 推荐, 收藏, 编辑
摘要:GetClassLoader是JAVA中用来得到ClassLoader的 JAVA中有以下几种ClassLoader. 1. Bootstrap ClassLoader - GetClassLoader的返回值为Null,是JVM的C++源码, Ext ClassLoader 的Parent 主要负 阅读全文

Maven的生命周期和插件

2017-12-26 14:40 by faunjoe88, 203 阅读, 0 推荐, 收藏, 编辑
摘要:一个完整的项目构建过程通常包括清理、编译、测试、打包、集成测试、验证、部署等步骤,Maven从中抽取了一套完善的、易扩展的生命周期。Maven的生命周期是抽象的,其中的具体任务都交由插件来完成。 Maven为大多数构建任务编写并绑定了默认的插件,如针对编译的插件:maven-compiler-plu 阅读全文
上一页 1 2 3 4 5 6 7 ··· 36 下一页