自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

物联网爱好者,持续分享电子DIY、物联网相关技术

持续分享电子DIY、物联网相关技术

  • 博客(14)
  • 收藏
  • 关注

原创 Docker入门

前面的文章讲解了怎么安装Docker,本文将迈出使用Docker的第一步,学习第一个Docker容器。确保Docker已经就绪使用如下命令可以查看docker程序是否存在,功能是否正常:[qifuguang@winwill~]$ sudo docker infoContainers: 5Images: 72Storage Driver: aufs Root Dir: /var/lib/doc

2015-06-27 11:49:26 2282

原创 Ubuntu系统安装Docker

本文仅仅介绍在ubuntu系统主机上安装Docker的方法,OSX,windows等系统请读者参阅:window安装点击这里 OSX安装点击这里在Ubuntu系统中安装Docker目前,官方支持在西面的Ubuntu系统中安装Docker:Ubuntu 14.04 64位 Ubuntu 13.04 64位 Ubuntu 13.10 64位 Ubuntu 12.04 64

2015-06-27 10:59:21 1817

原创 Docker简介

Docker简介Docker是一个能够把开发的应用程序很方便地部署到容器的开源引擎。由Docker公司团队编写,基于Apache 2.0开源授权协议发行。Docker的主要目的如下:提供一个简单的,轻量的建模方式Docker上手快,只需要几分钟就可以将自己的程序Docker化。Docker依赖写时复制技术,使修改应用程序非常迅速,达到“随心所至,代码即改”的境界。Docker启动速度非常快,大多数的

2015-06-27 10:54:37 1531

原创 锁在应用层的优化思路

减少锁持有时间如下面的代码:public synchronized void test() { executeMethod1(); multiThreadExecute(); executeMethod2(); }如果真正存在资源的竞争,需要加锁的函数是multiThreadExecute(),其他两个函数executeMethod1和exec

2015-06-05 15:41:53 1346

原创 Java锁消除

概述锁消除是Java虚拟机在JIT编译是,通过对运行上下文的扫描,去除不可能存在共享资源竞争的锁,通过锁消除,可以节省毫无意义的请求锁时间。实验看如下代码:package com.winwill.lock;/** * @author qifuguang * @date 15/6/5 14:11 */public class TestLockEliminate { public sta

2015-06-05 14:38:23 3557

原创 Java偏向锁

概述偏向锁是JDK 1.6提出的一种锁优化方式,起核心思想是如果程序没有竞争,则取消之前已经取得锁的线程的同步操作。也就是说,某一个锁被一个线程获取之后,便进入了偏向锁模式,当该线程再次请求这个锁时,就无需再进行相关的同步操作,从而节省了操作时间。但是如果在此期间,有其他线程申请了这个锁,则退出偏向锁模式。在JVM中可以使用-XX:+UseBiasedLocking设置启用偏向锁。实验看如下的代码:

2015-06-05 14:07:45 3837

原创 jdk自带常用命令行工具使用

下面是笔者整理的jdk自带的常用命令行工具的使用方法,全部原创,转载请注明出处,并贴上链接,谢谢!jps命令使用jstat命令使用jinfo命令使用jmap命令使用jhat命令使用jstack命令使用jcmd命令使用

2015-06-04 17:36:56 3437

原创 jcmd命令使用

概述在JDK 1.7之后,新增了一个命令行工具jcmd。它是一个多功能工具,可以用来导出堆,查看java进程,导出线程信息,执行GC等。使用示例下面这个命令能够列出当前运行的所有虚拟机:参数-l表示列出所有java虚拟机,针对每一个虚拟机,可以使用help命令列出该虚拟机支持的所有命令,如下图所示,以21024这个进程为例:查看虚拟机启动时间VM.uptime打印线程栈信息Thread.print查

2015-06-04 17:29:09 16703 1

原创 jstack命令使用

概述jstack可用于导出java运用程序的线程堆栈,其基本使用语法为: jstack [-l] pid-l 选项用于打印锁的额外信息。使用示例下面这段代码运行之后会出现死锁现象(因为线程1持有lock1,在等待lock2,线程2持有lock2在等待lock1,造成了循环等待,形成死锁):package com.winwill.deadlock;/** * @author qifuguang

2015-06-04 17:05:10 3223

原创 jhat命令使用

概述jhat(Java Head Analyse Tool)是jdk自带的用来分析java堆快照的工具,具体的使用方法是: jhat dump_file_name使用示例在此以前文dump出来的文件(dump.bin)为例,演示怎么使用jhat分析堆文件。 上图中使用jhat命令打开了之前dump出来的堆快照文件,可以看到,命令成功执行后会在命令执行的本机启动一个http服务,可以在浏览

2015-06-02 23:58:41 4330

原创 jmap命令使用

概述jmap是一个多功能的命令。它可以生成java程序的堆dump文件,也可以查看堆内对象实例的统计信息,查看ClassLoader的信息以及Finalizer队列。使用示例导出对象统计信息下面的命令生成PID为2500的java成粗的对象的统计信息,并输出到out.txt文件中:[qifuguang@winwill~]$ jmap -histo 2500 > out.txt[qifuguang@

2015-06-02 23:37:46 3910

原创 jinfo命令使用

概述jinfo可以用来查看正在运行的java运用程序的扩展参数,甚至支持在运行时动态地更改部分参数,他的基本使用语法如下: jinfo -< option > < pid >其中option可以为以下信息: * -flag< name >: 打印指定java虚拟机的参数值。 * -flag [+|-]< name >:设置或取消指定java虚拟机参数的布尔值。 * -flag < nam

2015-06-02 23:04:20 4906

原创 jstat命令使用

概述jstat是一个可以用于观察java应用程序运行时相关信息的工具,功能非常强大,可以通过它查看堆信息的详细情况。 基本用法jstat命令的基本使用语法如下:jstat -option [-t] [-h] pid [interval] [count]选项option可以由以下值构成。 -class:显示ClassLoader的相关信息。-compiler:显示JIT编译的相关信息。-gc:

2015-06-02 01:09:30 3416

原创 jps命令使用

jps命令类似于linux下的ps命令,用于列出当前正在运行的所有java进程。基本用法直接运行不加任何参数就能列出所有java进程的pid和类的短名称。例如:常用参数-q参数-q可以指定jps只列出pid,而不输出类的短名称,例如:-m参数-m参数可以用于列出传递给java进程主函数的参数,例如: 这里可以看到传递给jps(jps本身也是java进程)进程的参数就是-m-l参数-l参数用于输出主

2015-06-02 00:14:33 3090 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除