- 博客(15)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
原创 多线程下的发布订阅模式实现
我们都知道,发布者会实现注册、删除、通知订阅者方法。同时,发布者有一个集合类型的成员变量,用以保存注册的订阅者,在需要通知订阅者时,遍历该集合即可。在多线程环境下,只需在实现注册、删除、通知订阅者方法时,使用synchronized对该集合对象加锁即可。下面以hbase监听configuration变化为例,阐述多线程下的发布订阅模式的代码实现:订阅者接口:package org.apache.h...
2016-12-31 14:54:24 2886
原创 JVM源码分析之wait()和notify()
wait() 在linux 下 调用 pthread_cond_wait()阻塞在条件变量上notify()方法在linux下调用pthread_cond_signal()唤醒阻塞在条件变量上的线程
2016-12-29 17:47:01 1742
转载 JVM源码分析之Object.wait/notify实现
最简单的东西,往往包含了最复杂的实现,因为需要为上层的存在提供一个稳定的基础,Object作为java中所有对象的基类,其存在的价值不言而喻,其中wait和notify方法的实现多线程协作提供了保证。public class WaitNotifyCase { public static void main(String[] args) { final Object l...
2016-12-25 22:34:06 776 1
原创 mybatis-spring注解标识dao层
在xml文件中配置MapperScannerConfigurer这个bean的属性,启动spring的时候扫描自定义的@Repository注解
2016-12-24 18:50:30 2984
转载 Synchronized实现原理和锁优化
Synchronized的三种用法synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性Java中每一个对象都可以作为锁,这是synchronized实现同步的基础。synchronized 常见的三种用法如下:普通同步方法,锁是当前实例对象 静态同步方法,锁是当前类的class对象 同步方法...
2016-12-21 15:55:39 3857
转载 use block-level synchronization with private variable of non-primitive type
What is the significance of parameter passed to synchronized?synchronized ( parameter ){}to achieve block level synchronization. Somewhere i saw code likeclass test{ public static...
2016-12-21 13:48:54 859
转载 Java中wait()方法为什么要放在同步块中
如果wait()方法不在同步块中,代码的确会抛出IllegalMonitorStateExeception:public class WaitInSyncBlockTest { @Test public void test() { try { new Object().wait(); } catch (Interrup...
2016-12-20 16:08:28 507
转载 ES重建索引
elasticsearch索引一旦建立,就无法动态修改其字段的映射类型,有时候因为人为原因污染了索引的mapping,这个时候就只能通过重建索引来修改索引的mapping设置了。在一次项目中,有一个字段结构如下: 123456 { "logistics":{ "company":"string", "no":"string" }} 由于当初创建索引的时候,既没有给这个索引中的这个字段指定合适的类型,也没有通过动态模板来为这.
2016-12-19 02:57:26 399
转载 js判断对象的某个属性是否为函数
怎么判断对象的属性是一个函数不考虑兼容的话就用 typeof 判断是不是"function"就好了,即typeof json.c == 'function'兼容的话 可能还得是 Object.propotype.toString.call(json.c) === "[object Function]"
2016-12-16 15:02:54 3088
转载 js中两个感叹号的原理与用法分析
在javascript中有时会看到有两个!!的用法 var foo; alert(!foo);//undifined情况下,一个感叹号返回的是true; alert(!goo);//null情况下,一个感叹号返回的也是true; var o={flag:true}; var test=!!o.flag;//等效于var test=o.fl
2016-12-16 14:31:53 340
转载 HBase各种级别的锁以及对读写的阻塞
为了保证并发操作时数据的一致性和性能,HBase中应用了各种各样高效的可重入锁,包括行级别的rowlock、mvcc,region级别的读写锁,store级别的读写锁,memstore级别的读写锁等等。1、 行级别的锁RowLockHBase中为了解决行级别在并发操作中的一致性问题,采用了Rowlock机制。保证只有同一个线程同时对该行做操作。当然rowlock有lease租约的概念,超过期限,...
2016-12-16 11:19:56 574
转载 火狐和IE的window.event对象详解
IE:有window.event对象FF:没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=doMouseMove(event)解决方法:var event = event || window.event;example:<script> function test(event) { var event = event || window.event; //do Something }</script><input type="b
2016-12-14 10:18:37 695
转载 使MySQL引擎使用索引避免全表扫描的sql查询优化
本文主要内容:1:查询语句where 子句使用时候优化或者需要注意的2:like语句使用时候需要注意3:in语句代替语句4:索引使用或是创建需要注意解决办法就是中的这一句HXZGSB00265Request.setQcs(new JSONObject());把期初数设为0
2016-12-09 19:26:20 2089
原创 Eclipse创建Maven多模块工程
如果,你需要创建多个项目,项目之间即独立又有关系,那么创建一个Maven多模块项目是个非常好的选择。一、创建Maven Project1.File --> New --> Maven Project如下图,选中Create a simple projectps: 选择这个Create a simple project很重要,只有选择了这个,在下一步中才会出现packaging类型选项...
2016-12-08 15:04:33 462
viewpager实现页面导航之三
2015-07-22
viewpager与预编译的点布局实现页面导航效果
2015-07-20
导入第三方类库却出现the importXXX can not be resolved
2015-06-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人