自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并发编程学习笔记3

并发编程之synchronized同步1.java级别的知识-synchronized1.1 k=k+1这条指令java意义上是一行代码,两条指令,得到的汇编代码.o文件,然后再反汇编成可以看懂的机器码就更多了t1线程执行时只做完k+1,当t2线程来时,此时k还是原值,所以两个线程执行,最后的结果只进行了1次加法caslock.lock();2.caslockvolatile status = 0;unsafe.compareAndSwapInt(this,valueOf

2020-08-28 21:19:02 112

原创 并发编程学习笔记2

多线程锁的os内核理解os同步的方式1.互斥量(mutex)2.自旋锁(spinlock)3.信号量sysnchronized1.关键字实现在interpreterRuntime.cpp中的moniterenter2.synchronizer.cpp底层使用的不是自旋锁jvm内部获取锁的时候也没有自旋3.锁膨胀mutex操作系统级别同步原语man pthread_mutex_init初始化和销毁一个互斥量(一把锁)引入pthread.h头文件mutexte

2020-08-27 00:41:08 124

原创 并发编程学习笔记1

线程基础概念和java中的线程-0823java中的线程和操作系统的线程是什么关系1.java线程的本质start方法启动后,调用软方法run()start()源码的线程控制原语start0();native方法,JNI方法,对应于一个c语言方法怎么看这个方法,在github上下载open jdk方法为什么下的是jdk11,编译jdk11必须要有jdk8的代码底层是jvm.cppjvm_startThread()pthread_create(),由glibC提供,四个参

2020-08-23 22:34:49 122 2

原创 jvm学习笔记3

玩转JVM中的对象及引用-0721回顾1.jvm包括方法区、堆、栈2.处理的流程3.堆的分代划分,4.JHSDB可以查看内存映射,对象放在哪里,5.查看了对应的栈,以及栈帧之间共享数据,6.深入辨析了堆和栈7.oom中的不同类型8.常量池划分了三种,运行时常量池在堆里面9.上节课作业String str1 = “abc”;String str2 = new String(“abc”);String str3 = str2.intern();此处比较的引用对象的地址f

2020-08-23 17:17:38 193

原创 jvm学习笔记2

深入理解JVM的内存区域-0719课前回顾jdk-jre-jvmjvm是一个假设在操作系统之上的微型操作系统,需要依赖java自带的类库跨语言、跨平台java虚拟机主要是一种规范,主要有hotspot、j9、taobaovm、zing(土豪才能用)从内存结构开始发散学习线程私有区包括虚拟机栈、本地方法栈、程序计数器虚拟机栈默认大小1M运行java方法所需要的的数据指令存储在栈帧中操作数栈存在的意义?类似于操作系统的缓存作用直接内存,unsafe在

2020-08-22 23:00:22 138

原创 jvm学习笔记

虚拟机的前世今生和java内存区域1.虚拟机的前世今生.java文件编译成字节码.class文件,这样可以在jvm中运行,其中还需要借助jre里面已经定义好的java类库。而jvm中又包含classloader、字节码解释器、jit编译器和执行引擎。.class是字节码文件,jvm可以将很多语言转换成字节码文件,从而实现在多平台上运行(windows、linux、unix、andriod、mac)1.1常见的jvm实现hotspot-oraclejrocket-oraclej9-ibmt

2020-08-22 00:02:55 199

空空如也

空空如也

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

TA关注的人

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