摘要: 1、串行计算 2、线程协作,分子任务,启动新线程(目录不是很深的时候没问题) 3、解决第二种方法出现线程死锁超时的问题,每次计算文件夹中文件大小和保存子目录 4、数据交换,使用ArrayBlockingQueue,在线程间互发多组数据 5、CountDownLatch实现,不返回结果,共享状态,代码 阅读全文
posted @ 2015-02-01 16:59 感遇 阅读(1502) 评论(0) 推荐(0)
摘要: Collections.synchronizedMap:实现了线程安全的特性 ConcurrentHashMap:保证了线程安全的同时也兼顾了并发访问的性能,将整个数据集合分成了若干个块 import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.concurrent... 阅读全文
posted @ 2015-02-01 16:44 感遇 阅读(218) 评论(0) 推荐(0)
摘要: package testannotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import jav... 阅读全文
posted @ 2015-01-27 23:27 感遇 阅读(153) 评论(0) 推荐(0)
摘要: Callable和Runnable的区别如下: I Callable定义的方法是call,而Runnable定义的方法是run。 II Callable的call方法可以有返回值,而Runnable的run方法不能有返回值。 III Callable的call方法可抛出异常,而Runnable的ru 阅读全文
posted @ 2015-01-06 12:05 感遇 阅读(229) 评论(0) 推荐(0)
摘要: 1、在多线程编程中,有时候需要自动为每个启动的线程生成一个唯一标识,这个时候,通过一个ThreadLocal变量来保存每个线程的标识是最有效、最方便的方式了。2、ThreadLocal实例通常是类中的私有静态字段3、在构建ThreadLocal的时候,通过覆盖子类的方法来改写序号。从而达到为每个线程... 阅读全文
posted @ 2014-12-24 18:23 感遇 阅读(909) 评论(0) 推荐(0)
摘要: CountDownLatch是一个同步辅助类,犹如倒计时计数器,创建对象时通过构造方法设置初始值,调用CountDownLatch对象的await()方法则处于等待状态,调用countDown()方法就将计数器减1,当计数到达0时,则所有等待者或单个等待者开始执行。简单例子import java.u... 阅读全文
posted @ 2014-12-24 16:58 感遇 阅读(780) 评论(0) 推荐(0)
摘要: ThreadLocal总结 1、ThreadLocal使用场合主要解决多线程中数据数据因并发产生不一致问题。ThreadLocal为每个线程的中并发访问的数据提供一个副本,通过访问副本来运行业务,这样的结果是耗费了内存,单大大减少了线程同步所带来性能消耗,也减少了线程并发控制的复杂度。 2、Thre 阅读全文
posted @ 2014-12-24 16:53 感遇 阅读(566) 评论(0) 推荐(0)