上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 41 下一页

2019年1月30日

java对象模型

摘要: java对象模型其实就是JVM中对象的内存布局。一个对象本身内在结构的描述信息以字节码的方式存储在方法区中(参见java内存区域),说白了就是class文件。那么如何获取到对象的class信息呢?虚拟机使用对象头部的一个指针指向 Class 区域,找到对象的 Class 描述。在虚拟机中,对象在内存 阅读全文

posted @ 2019-01-30 23:29 不想下火车的人 阅读(693) 评论(0) 推荐(0)

2019年1月29日

java内存模型

摘要: 之前聊过java内存区域(参见java内存区域),还有一个叫java内存模型(JMM,Java Memory Model)的,都是基于JVM特有的概念,名字看起很像,说的却是两码事。内存区域是JVM管理内存的手段,通过划分区域方便管理;而内存模型是JVM定义的一种规范,定义了程序中各个变量(包括实例 阅读全文

posted @ 2019-01-29 23:54 不想下火车的人 阅读(153) 评论(0) 推荐(0)

2019年1月28日

偏向锁浅析

摘要: 偏向锁不像自旋锁、读写锁或者synchronize修饰词这样的同步,它其实是JVM内置的一种锁机制,自JDK1.6后默认启用。换句话说,这种锁不是咱程序员能用代码来瞎操心的,JVM自己会去操心的。真想要瞎操心,就得改JVM的启动参数: 既然无需我们操心,那么了解一下也是好的。偏向锁偏向于第一个获得它 阅读全文

posted @ 2019-01-28 19:34 不想下火车的人 阅读(6747) 评论(0) 推荐(0)

2019年1月25日

maven打包报错:在类路径或引导类路径中找不到程序包 java.lang

摘要: 刚下了个新项目,跑了下maven报错了: E:\workspace\wlf>mvn clean install [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while build 阅读全文

posted @ 2019-01-25 11:50 不想下火车的人 阅读(12735) 评论(0) 推荐(0)

2019年1月14日

可重入的读写锁

摘要: 读写锁同样存在着重入问题。简单的读写锁见读写锁浅析。这里我们拿这个简单的写锁来做一个重入测试: @Test public void testNonReentrantLock() { MyReadWriteLock lock = new MyReadWriteLock(); new Thread(() 阅读全文

posted @ 2019-01-14 15:02 不想下火车的人 阅读(457) 评论(0) 推荐(0)

2019年1月9日

读写锁浅析

摘要: 所谓读写锁,即是读锁和写锁的统称,它是两种锁,但放在同一个对象里,通过两个方法分别获取。适用场景是读多写少的业务,比如缓存。用法很简单,三原则:读读共享、读写互斥、写写互斥。换种说法:读锁是共享的,读锁允许其他线程的读操作,而写锁是互斥的,写锁不允许其他线程的读写操作。 但此处有一个问题先提出来:正 阅读全文

posted @ 2019-01-09 18:16 不想下火车的人 阅读(1321) 评论(0) 推荐(0)

2018年12月28日

Eclipse下无法解析注解:@Getter和@Setter

摘要: 接触到一个项目,java bean全部使用@Getter和@Setter来偷懒,我用getXXX方法,结果发现编译失败,没法用。后来看到另一个项目也是用了@Getter和@Setter注解,但人家用的好好的,getXXX也没出现红叉叉。 比较后发现@Getter和@Setter注解OK的项目依赖了一 阅读全文

posted @ 2018-12-28 17:01 不想下火车的人 阅读(4092) 评论(0) 推荐(0)

2018年12月26日

公平的自旋锁

摘要: 之前我们了解了自旋锁(见自旋锁浅析),现在来看看怎么让自旋锁变得公平。何谓公平?假如现在有10个线程来抢锁,按顺序排队,0号线程是第一个,9号线程是最后一个,把锁从0号依次传递到9号,这就是公平的。反之,不按先来后到的顺序来,就是不公平的。 那么怎么实现公平?结合现实生活中的例子,我们去银行或者医院 阅读全文

posted @ 2018-12-26 19:50 不想下火车的人 阅读(847) 评论(0) 推荐(0)

2018年12月24日

可重入的自旋锁

摘要: 之前我们粗浅的介绍了自旋锁(参见自旋锁浅析),这次主要介绍它的变种。 首先是可重入自旋锁。参照之前的实现代码,我们可以了解到,当一个线程第一次已经获取到了自旋锁,如果在锁释放之前又一次重新获取该锁,第二次就不能成功获取到。看例子: @Test public void testNotReentrant 阅读全文

posted @ 2018-12-24 17:01 不想下火车的人 阅读(631) 评论(0) 推荐(0)

2018年12月20日

自旋锁浅析

摘要: 自旋锁的洋名叫spin lock,是一种比较有个性的锁,因为它站在传统的互斥锁的对立面。如果并发时,互斥锁的做法是让线程阻塞,但自旋锁却不这么做,而是原地打转,不停的去抢锁,抢不到誓不罢休。简而言之,互斥锁是重量级(悲观)锁,自旋锁是轻量级(乐观)锁。自旋锁使用场景是:1、多核处理器,2、线程等待锁 阅读全文

posted @ 2018-12-20 20:40 不想下火车的人 阅读(3394) 评论(1) 推荐(1)

上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 41 下一页

导航