
Java并发编程
lhever_
这个作者很懒,什么都没留下…
展开
-
一个简单的Java对象池实现——可用来解决SimpleDateFormat的线程安全问题
被SimpleDateFormat的线程安全问题困扰过的人应该不止我一个吧。为了比秒这个类的线程安全,通常我们会有以下两种做法:每次都new 一个SimpleDateFormat对象,但频繁的创建与销毁对象带来的性能问题……哈哈,我就不在这里过多的BB了。使用ThreadLocal技术,这恐怕是最常用的一种解决方案,我想几乎每个有经验的Java程序员都使用过它,在此我也不多说啦,如果真有不知到的原创 2016-06-17 17:55:31 · 2878 阅读 · 0 评论 -
一个线程安全的计数器实现(java),可以让一个变量每天从1开始递增
前几天工作中一段业务代码需要一个变量每天从1开始递增。为此自己简单的封装了一个线程安全的计数器,可以让一个变量每天从1开始递增。当然了,如果项目在运行中发生重启,即便日期还是当天,还是会从1开始重新计数。所以把计数器的值存储在数据库中会更靠谱,不过这不影响这段代码的价值,现在贴出来,供有需要的人参考。package com.hikvision.cms.rvs.common.util;import j原创 2017-08-09 20:10:20 · 17041 阅读 · 4 评论 -
Java多线程编程实战指南(设计模式篇,黄文海)-之管道线模式
不得不说,本人工作上很少有使用多线程编程技术的地方。由于本人工作上经常使用的是类似SSH等框架搭建MVC架构,所以更加习惯于编写一些优秀程序员所唾弃的样板式的代码。最近看了文海的多线程编程实战指南,瞬间眼前一亮。觉得有很多自己可以学习的,事实上,我已经在最近的项目中使用上了那本书介绍的两相终止模式、串行封闭模式、生产者消费者模式以及线程池等技术,确实在许多方面改进了我们服务端的吞吐量。说到这里本人...原创 2016-04-27 10:06:50 · 3336 阅读 · 0 评论 -
一种重置生产者消费者模式的消费队列的线程安全的做法(java)
/* * @author lihong * @date 2016年1月1日 下午5:20:02 * @version v1.0 */package com.lihong.DDPush;import java.util.LinkedList;import java.util.List;import java.util.concurrent.atomic.AtomicReferenc...原创 2018-04-05 14:16:17 · 308 阅读 · 0 评论 -
Java Thread.interrupt 复习
本文转载自:Java Thread.interrupt[点击打开链接], 文章写的太好,怕丢了,所以原文也一并拷贝过来。下面这个场景你可能很熟悉,我们调用Thread.sleep(),condition.await(),但是IDE提示我们有未捕获的InterruptedException。什么是InterruptedException呢?我们又应该怎么处理呢?大部分人的回答是,吞掉这个异常就好啦。...转载 2018-06-20 09:13:44 · 228 阅读 · 0 评论 -
使用多线程往同一个文件写入数据的线程安全的例子(java实现)
本文给出了一个如何利用java提供的类MappedByteBuffer对文件进行并发写入的例子。具体实现思路就举个列子说明吧: 假设有10000个字节需要写入某个文件,为了加快写入速度,可以开启2个线程,第一个线程将前5000个字节写入文件0~4999的位置,另外一个线程将后5000个字节写入文件5000~9999的位置,等2个线程都写入完成后。我们就成功的将10000个字节完整的写入到了文件中。...原创 2018-08-01 17:56:05 · 26472 阅读 · 9 评论