自定义博客皮肤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中的CAS原理

CAS:Compare and Swap, 翻译成比较并交换。  java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。 本文先从CAS的应用说起,再深入原理解析。   CAS应用 CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什

2017-01-25 17:30:06 345

原创 MySQL存储引擎

MyISAM和InnoDB存储引擎。 MyISAM只有一种表级锁,因此不需要事务实现。可通过’show status like ‘table%’’ 查看锁对系统的影响。 Lock table read local,为表加读锁,这里local表示允许并发插入。默认将SQL中所有涉及的表都加锁。默认锁调度机制是写优先。 MyISAM存储结构数据文件、索引文件分开存储。索引指向的是

2017-01-25 17:28:11 459

原创 JVM内存模型

启动一个线程,都会分配一块工作内存,每次线程操作变量,都是从主内存拷贝到工作内存,线程只操作工作内存,然后再jvm会回写到主内存。因此出现多线程访问同一数据会线程不安全。volatile可以保证变量的内存可见性,但原子操作只有赋值(i=1)这一种改变操作,所所以要自己实现变量原子性。jdk提供atomic原子操作对象。

2017-01-25 17:27:55 248

原创 jvm内存结构

jvm内存分为:线程私有内存:栈、程序计数器, 公共内存:堆、本地方法区、方法区、直接内存 栈存放线程的方法调用、返回值、局部变量、对象引用等信息。 程序计数器记录当前线程执行的位置。 本地方法栈存放jni,native方法调用信息,类似JVM栈。 堆存放所有定义的对象。分为年轻代、年老代,年轻代分为eden区和2个幸存区。 方法区,在hotspot虚拟机中也叫

2017-01-25 17:27:38 452

原创 JVMGC机制

GC就是找到不用的对象,回收对象,释放内存。 名词解释: minor gc:年轻代回收 major gc/full gc:年老代回收 当进行年老代回收时,往往伴随至少一次年轻代回收。但在PS回收器时,则会选择只进行major gc。 对象的移动过程: 初始在eden区分配,当进行一次年轻代gc后,放入存活区。当在存活区来回复制N次(可配置),进入年老代。大对象也会直接放

2017-01-25 17:27:19 1726

原创 JAVA线程池ExecutorService学习

ExecutorService线程池总接口。 ThreadPoolExecutor是Executors类的底层实现 。 ThreadPoolExecutor的完整构造方法的签名是:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, Block

2017-01-25 17:26:57 267

原创 JAVA锁机制

synchronized和Lock均为可重入锁。即可为该对象多次加锁,通过锁标志+1进行操作;当所标志为0时,释放所。重入锁目的是为防止死锁发生。 synchronized:基于系统内核实现线程等待(通过linux系统pthread_mutex_lock命令进行等待)。         a、将线程通过CAS操作放入ContentionList队列头部。         b、当Ow

2017-01-25 17:26:19 2681

原创 ThreadLocal学习

ThreadLoocal原理 ThreadLocal是线程变量,主要为防止多线程环境中,变量访问冲突问题。 ThreadLocal为每个线程创建了一个变量副本,实际就是在线程Thread类中有个私有属性,如下图: 实际数据存储是在ThreadLocal中的ThreadLocalMap中存储,ThreadLocal相当于一层包装,所有的get,set操作都是对这个m

2017-01-25 17:25:35 338

转载 Linux IO模式及 select、poll、epoll详解

一 概念说明 在进行解释之前,首先要说明几个概念: - 用户空间和内核空间 - 进程切换 - 进程的阻塞 - 文件描述符 - 缓存 I/O 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层

2017-01-25 15:49:47 289

空空如也

空空如也

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

TA关注的人

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