- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 无锁之Atomic大杂烩
Atomic包共有12个类,可以分为四大类,基本类型的原子更新,数组的原子更新,引用的原子更新,volatile字段的原子更新。Atomic包里的类基本都是使用Unsafe实现的包装类。
2016-03-23 18:00:22 1002
原创 ReadWriteLock使用
ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有 writer,读取锁可以由多个 reader 线程同时保持。写入锁是独占的。主要方法readLock() // 获得读取操作的锁 writeLock() // 获得写入操作的锁
2016-03-22 21:49:01 1099
原创 Queue大杂烩
Queue、BlockingQueue、ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue、ConcurrentLinkedQueue
2016-03-22 15:19:09 900
原创 CyclicBarrier用法
CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。
2016-03-21 16:45:48 1570 1
原创 CountDownLatch用法
CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
2016-03-21 16:03:06 5237 3
原创 Semaphore(信号量)
河面上有五座独木桥,每个独木桥只能承载一个人,100个人要过桥,只能一个一个排队,过桥期间最多只能同时有5个人在过桥(每桥一个人),当某座桥上的人到了对面,马上就会有另外一个人上桥,直到最后100个人都到了对面,怎么做?用Semaphore(信号量)。
2016-03-21 14:23:53 1387
原创 浅谈 Fork/Join
fork/join的java7新增加的功能,可以把它理解成一个并发框架。我们通过fork/join能将一个可分解的大任务,分解成多个子任务同步执行,执行完毕后,在将各子任务的结果进行合并,得到最终的结果。
2016-03-19 22:06:21 4126
原创 一致性hash
一致性hash算法思路是将整个哈希值空间组织成一个虚拟的圆环,并通过hash算法加入对应服务节点,通过ip计算hash坐标,组成服务节点圆环。
2016-03-18 16:32:39 1932
原创 浅谈HashMap
HashMap是基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。HashMap可以理解成是数组和链表的结合。
2016-03-17 22:42:19 1385
原创 浅谈java泛型
泛型即参数化类型,Java语言引入泛型的好处是安全简单。 泛型的优势: 编译阶段检测类型安全 强制转换都是隐式、自动的(代码复用率高)
2016-03-17 14:35:58 764
原创 List、Set、Map集合大杂烩
java集合主要分三种:list、set、map;其中list和set都继承自Collection接口,两者最大区别是set不能包含重复元素
2016-03-15 22:20:52 1131 1
原创 显式锁Lock、ReentrantLock
显式锁(Lock)void lock(); void lockInterruptibly(); void tryLock();void tryLock(long timeout,TimeUnit unit); void unlock(); Condition newCondition();
2016-03-14 21:17:20 611
原创 java异常处理
Throwable 类是 Java 语言中所有错误或异常的超类Error表示程序无法处理的错误,是运行应用程序中较严重问题,无法捕获。Exception指出了合理的应用程序想要捕获的条件,是可以捕获的。Exception异常分两大类:可查的异常(checked exceptions)和不可查的异常(unchecked exceptions)
2016-03-13 22:36:38 799
原创 监控RuntimeException
在线程提前终止的最主要原因就是RuntimeException,由于这些异常表示出现了某种编程错误或者其他不可修复的错误,因此它们通常不会被捕获。它们不会在调用栈中逐层传递,而是默认地在控制台中输出栈追踪信息,并终止线程我们可以通过实现java.lang.Thread.UncaughtExceptionHandler接口来获取RuntimeException异常的信息。
2016-03-13 22:17:16 1003
原创 Timer类的缺陷
Timer类负责管理延时任务以及周期任务,然而它存在一些缺陷,生产环境中应该考虑使用ScheduledThreadPoolExecutor来替代它。
2016-03-13 21:42:41 697
原创 创建线程池的几种方式
我们可以通过Executors的静态方法来创建线程池。 newFixedThreadPool(int nThreads) newCachedThreadPool() newSingleThreadExecutor() newScheduledThreadPool(int corePoolSize)
2016-03-13 21:07:12 17820 1
转载 团队突破法则
团队的突破会面临成员之间的很多差异、分歧和碰撞,尤其当他们面对一个共同的竞争目标时,这种碰撞 将尤为激烈,而且表现方式是多种多样的,甚至是不择手段的,一种暗地里的、被称作“阴谋”的东西通 常就在这个时候应运而生了。所以,此时管理者最先考虑的,其实不是制定多么宏伟的目标,而是建立相 配套的内部协调机制,增强凝聚力。
2016-03-12 14:06:46 932
转载 团队晋升法则
永远要尽到自己的责任,就像狼一样,必须为了自己的生存、团队的发展和企业的未来尽到自己的努 在一个高度竞争的团队中, 你必须有敏感的洞察力, 并时刻警惕危险的出现, 对于哪怕是潜在的危机, 在任何需要做选择的时候,如果你的动作慢了,或者犹豫了,你将面临危险,虽然也许你不会被马上 力,然后再去考虑晋升的问题。
2016-03-12 14:04:41 804
转载 团队生存法则
1、一只鬣狗对于猎豹构不成任何威胁,但它们却能运用团队的力量,轻易地从猎豹的嘴中夺取食物, 有时还能干掉猎豹。从这点可以看出,没有人能够脱离团队的力量而独自生存,哪怕你再强。因此,猎豹 是勇士,但很悲剧;鬣狗能力平庸,却生存力极强。
2016-03-12 14:04:07 582
原创 struts2 json-plugin 提供跨站访问支持
1. 继承json-default包.2. result中type=”json”.3. result中增加回调参数 params={“callbackParameter”,”callback”},callback应与请求参数名对应.4. jquery请求中包含callback=?,callback应与action的result中参数callbackParameter的值对应.
2016-03-12 13:54:42 772
原创 浅谈ThreadLocal
线程封闭 避免使用同步的方式就是不共享数据,它是实现线程安全的最简单方式之一,当某对象被封闭在一个线程中时,将自动实现线程安全性;局部变量能达到这个效果,但更规范的做法是ThreadLocal
2016-03-12 13:36:07 495
原创 mysql_udf_json 将数据转成json格式
mysql-udf-json 是一款简单的MySQL用户自定义函数,具有json_array ()、json_members()、json_object ()、json_values ()四个函数,可以在MySQL数据库中将数据转换成JSON格式
2016-03-09 16:14:26 2152
原创 mysql触发器
DELIMITER | #定义结束符为|,mysql中;是结束符,编写触发器时需要临时将结束符又改为其它字符如|,触发器结束后在改回来CREATE TRIGGER *test_update* #创建名字为test_update的触发器{BEFORE | AFTER} {INSERT | UPDATE | DELETE } ON test #在test表发生插入、更新或删除操作之前或之后触
2016-03-09 14:44:57 656
原创 mysql表数据发生变化时,主动通知业务系统(mysql-udf-http)
mysql-udf-http 是一款简单的MySQL用户自定义函数,具有http_get()、http_post()、http_put()、http_delete()四个函数,可以在MySQL数据库中利用HTTP协议进行REST相关操作
2016-03-08 17:04:12 12439 4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人