- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 DelayQueue 延时阻塞队列
DelayQueue 是一种阻塞队列,它里面的元素需要实现Delayed接口。它会可以对元素按过期时间排序,取出的元素是最先过期的元素,如果当前没有过期的元素,调用take时候将会阻塞,队列为空时候,调用take也会阻塞。元素:package cn.t2;import java.util.concurrent.Delayed;import java.util.concurrent.TimeU...
2018-02-28 16:26:47 652
原创 Executor框架中的线程池
线程池:线程池:管理线程的资源池。线程池与任务队列相关,工作线程在任务队列里获取任务,执行任务,返回线程池,等待下一个任务的到来。使用线程池管理任务,比为每个任务创建线程的好处: 1 线程池里的线程可以复用,减少了线程创建和销毁的资源开支。 2 线程池里一般存在一部分线程,处理任务时候不必去着急创建线程,可以提高响应性。 3 合理设置线程池里的线程,使服务器既保持忙碌状态,又不会...
2018-02-28 10:52:07 606
原创 ConcurrentMap 里几个实现为原子性的复合操作
ConcurrentMap接口里封装了一些复合性操作,他们是原子性的操作。package cn.t1;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.ConcurrentMap;public class T1 { public static void main(String[] arg...
2018-02-26 15:22:12 2444 1
原创 java并发工具类构建高效且可伸缩的结果缓存
代码:接口:package cn.concurrent.t12;public interface Computable<A,V> { V compute(A arg) throws InterruptedException;}实现:package cn.concurrent.t12;import java.math.BigInteger;import java.util....
2018-02-09 15:15:00 429
原创 java同步工具类总结
一 闭锁 闭锁:延缓线程的进度,直到闭锁到达终止状态。闭锁到达终止状态后,其状态不会再发生变化,也就不会再阻塞线程。1.1 CountDownLatch闭锁 CountDownLatch使用构造器初始化一个计数器,线程调用countDown方法计数器值减1,调用await方法时,只有计数器值不为0,就会阻塞,为0时解除阻塞。 package cn.concurrent.t11;imp...
2018-02-08 11:19:52 509
转载 FileUtils API
引入jar: commons-io-2.4.jar一、概述这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。
2018-02-07 13:17:11 1627
原创 栅栏Exchanger
Exchanger与CyclicBarrier区别是,前者可以用于2个线程交换数据。Exchanger一般用于2个线程,在到达栅栏位置调用exchange(Object o)方法,如果全部线程没有到达栅栏位置,此时先到的线程会阻塞,只到全部线程到达栅栏位置。exchange方法会提交本线程的数据(参数),获取另外一个线程提交的数据(响应)。package cn.concurrent.t
2018-02-07 12:07:28 278
原创 栅栏 CyclicBarrier
栅栏:所有线程到达栅栏位置之前,先到达的线程会被阻塞,直到所有线程全部到达栅栏位置,全部线程继续执行。栅栏等待的是线程,到达终止状态会被重置,可以继续使用,这一点与闭锁不同,闭锁等待的是事件,到达终止状态状态不可以再改变。CyclicBarrier是一种栅栏,构造器可以初始化线程数量,还可以初始化一个Runnable任务,在栅栏释放,所有线程继续执行时选择一个线程来执行Runnable任务。
2018-02-07 12:03:52 244
原创 信号量Semaphore
信号量用来限制同一时间访问同一资源的线程的数量,可以实现资源池。信号量会初始化一定数量的虚拟许可,线程在执行操作前会先获取许可,若当前没有可用许可线程会阻塞,直到有可用许可,操作完成后会释放许可。package cn.concurrent.t10;import java.util.concurrent.Semaphore;public class T4 { private final
2018-02-06 15:40:04 227
原创 闭锁 FutureTask创建异步任务
FutureTask 是一种闭锁,它是Callable实现的,一种有返回值的Runnable,其状态包括:准备运行,运行中,运行结束,其get方法在运行结束之前一直处于阻塞状态。异步返回结果是计算线程安全发布到调用线程的。下面是异步调用的一个简单应用:package cn.concurrent.t10;import java.util.Random;import java.util.co
2018-02-06 11:20:34 268
原创 CountDownLatch 闭锁的一个简单应用
闭锁:它是一种同步工具类,可以延缓线程的进度,直到其到达终止状态,CountDownLatch 是闭锁的一种实现。它的常用的两个方法:await 和 countdown假设初始化 CountdownLatch c=new CountDownLatch(2); 当前线程执行到c.await()时候会阻塞,直到其他线程执行2次c.countdown(),当前线程才解除阻塞。下面是一个应
2018-02-05 17:40:14 266
rocketmq-console.zip
2021-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人