自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 什么是JMM

什么是JMM1.JMM规定了所有变量(除了方法参数和本地变量,包括实例变量和静态变量)都放在主内存中。每个线程都有自己的工作内存,工作内存保存了该线程使用的主内存的变量副本,所有的操作都在工作内存中进行,线程不能直接操作主内存。线程之间通过将数据刷回主内存的方式进行通信。2.JMM定义了原子性,可见性和有序性。原子性:一个操作不可分割,不可中断,不可被其他线程干扰。JMM提供moniterenter和monitereixt俩个字节码指令保证代码块的原子性可见性:当一个变量被修改后,其他线程能够立即看

2020-11-12 14:50:46 812

原创 线程Thread->如何获得synchronized(共享资源)?

线程Thread->如何获得synchronized(共享资源)?Java对象可以分为三个区域存储在堆中,其中有一个区域叫做对象头,对象头中有一个指向moniter对象的指针,这个moniter对象随着Java对象的创建而创建。moniter对象有很多属性,其中:count:记录锁的重入次数owner:记录当前moniter对象被哪个线程持有的waitSet:处于wait状态的线程,会被放入这个集合.set无序集合也能验证被唤醒的线程是随机的entryList:没有获得锁的线程将会在这里等

2020-11-05 09:13:44 71

原创 synchronized,线程,资源的关系

synchronized,线程,资源的关系//synohronized的三种使用方式//1.实例方法public synchronized void foo1(){ //do something...}synchronizd修饰在实例方法上,当前线程锁的是调用这个方法的实例锁的持有者:当前线程锁的资源:调用该方法的实例//2.静态方法public static synchronized void foo2(){ //do something...}synchronized修饰在

2020-11-04 16:31:24 35

原创 wait()和sleep()的区别

wait和sleep的区别1.wait()是Object的实例方法。sleep()是Thread的静态方法2.wait()方法会释放当前线程对当前实例的监听所有权,当前线程进入等待池,所以wait方法要写在同步方法块中或同步方法中。sleep方法不会释放当前锁。3.wait(0)方法需要通过notify或notifyAll方法唤醒,抢到锁后继续执行。sleep()方法只需重新获得CPU的时间片就可以继续执行...

2020-11-04 15:43:18 77

空空如也

空空如也

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

TA关注的人

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