自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 java中垃圾回收算法+垃圾收集器

垃圾回收Garbage Collection,简称GC。GC中的垃圾指的是内存中不会再被使用的对象,而回收就是相当于把垃圾"倒掉"。垃圾回收有很多种算法:引用计数法、标记压缩法、复制算算法、分代、分区。在java堆中,新生代:老年代=1:2或1:3 比较合适垃圾回收算法引用计数法:这是个比较古老而经典的垃圾收集算法,其核心就是在对象被引用时计数器加1,而当引用失效时则减1,但是这种方式存在非常严...

2018-03-18 15:33:33 899

原创 JVM各组成部分说明+相关参数设置

虚拟机是一款软件,用来执行一系列虚拟计算机指令。虚拟机可以分为系统虚拟机(如VirtualBox、VMware)和程序虚拟机(如java虚拟机)。系统虚拟机是对物理计算机的仿真,提供了一个可以运行完整操作系统的软件平台。程序虚拟机专门为执行单个计算机程序而设计,如在java虚拟机中执行的指令为java字节码指令。java发展至今,出现过很多虚拟机,最初使用的是Classic的虚拟机,到现在应用最广...

2018-03-14 11:06:21 463

原创 重入锁+读写锁+公平锁+非公平锁

synchronized关键字可以实现线程间的同步互斥工作。Lock对象锁是一种完成同步互斥工作的一个更优秀机制。它具有比synchronized更为强大的功能,并且有嗅探锁定、多路分支等功能。重入锁在需要进行同步的代码部分添加锁定,但不要忘记最后一定要释放锁定,不然会造成锁永远无法释放,其他线程永远进不来的结果。UseReentrantLock.javaimport java.util.conc...

2018-03-12 22:15:46 1566 1

原创 无锁并行计算框架Disruptor

github地址https://github.com/LMAX-Exchange/disruptorDisruptor是一个java的BlockingQueue,它的目的是在相同处理器的不同线程之间move数据(message or event)。相对于一般的queue,Disruptor具有一些重要的特性:为事件预分配内存、可选的lock-free、根据消费依赖路径多路发送事件给消费者。Disr...

2018-03-12 20:38:55 1904

转载 Linux中./configure、make、make install 命令

这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤一、基本信息  1、./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。  2、make 是用来编译的,它从Makefile中读取指令,然后编译。  3、make install是用来安装的,它也从

2018-03-11 22:10:48 43922 1

原创 Semaphore信号量

Semaphore信号量非常适合高并发访问,新系统在上线之前,要对系统的访问量进行评估。这一般是根据以往的经验、数据、历年的访问量、推广力度等进行一个合理的评估,当评估值太大则投入的资源得不到实际的效果,会浪费资源;当评估值太小则某个时间点一个高峰值的访问量上来会直接压垮系统。解决高并发关键在业务,要将业务进行划分,划分为不同的层次和模块。针对某个具体模块,使用nginx等进行分流,分给部署同一个...

2018-03-10 18:53:15 586

转载 Java内部类

在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。1.成员内部类成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式:class Circle { double radius = 0; publi...

2018-03-05 13:11:25 166

原创 多线程模式中的单例

单例相关知识参考《JAVA设计模式之单例模式》。单例模式,最常见的就是饥饿模式、懒汉模式,一个直接实例化对象,一个在调用方法时进行实例化对象。在多线程模式中,考虑到性能和线程安全问题,我们一般选择下面两种比较经典的单例模式,在性能提高的同时,又保证了线程安全。dubble check instance//懒汉式单例类.在第一次调用的时候实例化自己 public class Singleton {...

2018-03-05 10:49:09 470

原创 使用wait/notify模拟Queue+ThreadLocal

在main函数中设置队列的容量为5,并添加了a、b、c、d、e这5个元素。在子线程t1中,想要将元素f、g添加进入队列,但是由于队列已满,执行lock.wait(),释放lock对象锁。t2线程从队列中取出两个元素,它获取到lock对象锁之后,因此时队列容量已满为5个,则从队列中取出元素并执行lock.notify发送通知给t1,t1等待t2中取出一个元素的代码执行完毕并释放lock锁之后,t1获...

2018-03-05 10:09:13 284

空空如也

空空如也

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

TA关注的人

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