随笔分类 -  并发编程

并发编程中的读写锁分离锁的使用
摘要:ReentrantReadWriteLock(读写锁) 读写锁ReentrrantWriteLock, 其核心就是实现读写分离的锁,在高并发访问下,尤其是读多写少的情况下,性能要远高于重入锁。 之前学synchronized、ReentrantLock时,我们知道,同一时间内,只能有一个线程进行访问 阅读全文
posted @ 2017-03-03 14:29 小~虎 阅读(449) 评论(0) 推荐(0)
并发编程过程中的重入锁
摘要:ReentrantLock(重入锁) 重入锁:在需要进行同步的代码部分加上锁定,但不要忘记最后一定要释放锁定,不然会造成锁永远无法释放,其他线程永远进不来的结果。 然后我们看一下打印的结果: 只有在第一个方法结束后,才会去执行第二个方法。 这种用法跟synchronized的用法差不多,还记得我们在 阅读全文
posted @ 2017-03-03 10:29 小~虎 阅读(145) 评论(0) 推荐(0)
互联网进行限流策略的Semaphore信号量使用
摘要:在Semaphore信号量非常适合高并发访问,新系统在上线之前,要对系统的访问量进行评估,当然这个值肯定不是随便拍拍脑袋就能想出来的,是经过以往的经验、数据、历年的访问量,已经推广力度进行一个合理的评估,当然评估标准不能太大也不能太小,太大的话投入的资源达不到实际效果,纯粹浪费资源,太小的话,某个时 阅读全文
posted @ 2017-02-28 14:11 小~虎 阅读(454) 评论(0) 推荐(0)
并发编程中Future和Callable使用
摘要:Future模式非常适合在处理很耗时很长的业务逻辑时进行使用,可以有效的减少系统的响应时间,提高系统的吞吐量。 看一个小的demo: 看一下执行结果: 这是异步去获取结果的示例,在子线程去处理任务的时候,主线程可以进行自己的逻辑处理。 这个类要实现Callable接口,实现call()方法。 如果主 阅读全文
posted @ 2017-02-27 17:16 小~虎 阅读(183) 评论(0) 推荐(0)
CountDownLatch的和CyclicBarrier使用
摘要:CyclicBarrier的使用: 假设只有一个场景:每个线程代表一个跑步运动员,当运动员都准备好后,才一起出发,只要有一个人没有准备好,大家都等待。 CountDownLacth使用: 他经常用于监听某些初始化操作,等初始化执行完毕后,通知主线程继续工作。 下面先看一个CountDownLatch 阅读全文
posted @ 2017-02-27 16:02 小~虎 阅读(164) 评论(0) 推荐(0)