自定义博客皮肤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 285

原创 MySQL存储引擎

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

2017-01-25 17:28:11 328

原创 JVM内存模型

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

2017-01-25 17:27:55 178

原创 jvm内存结构

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

2017-01-25 17:27:38 391

原创 JVMGC机制

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

2017-01-25 17:27:19 1622

原创 JAVA线程池ExecutorService学习

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

2017-01-25 17:26:57 210

原创 JAVA锁机制

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

2017-01-25 17:26:19 2552

原创 ThreadLocal学习

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

2017-01-25 17:25:35 277

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

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

2017-01-25 15:49:47 235

空空如也

空空如也

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

TA关注的人

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