自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

男儿当自强

人生来平凡,因奋斗进取而不凡。

  • 博客(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 613

原创 Executor框架中的线程池

线程池:线程池:管理线程的资源池。线程池与任务队列相关,工作线程在任务队列里获取任务,执行任务,返回线程池,等待下一个任务的到来。使用线程池管理任务,比为每个任务创建线程的好处:    1 线程池里的线程可以复用,减少了线程创建和销毁的资源开支。    2 线程池里一般存在一部分线程,处理任务时候不必去着急创建线程,可以提高响应性。    3 合理设置线程池里的线程,使服务器既保持忙碌状态,又不会...

2018-02-28 10:52:07 503

原创 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 2373 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 411

原创 java同步工具类总结

一 闭锁 闭锁:延缓线程的进度,直到闭锁到达终止状态。闭锁到达终止状态后,其状态不会再发生变化,也就不会再阻塞线程。1.1 CountDownLatch闭锁   CountDownLatch使用构造器初始化一个计数器,线程调用countDown方法计数器值减1,调用await方法时,只有计数器值不为0,就会阻塞,为0时解除阻塞。 package cn.concurrent.t11;imp...

2018-02-08 11:19:52 498

转载 FileUtils API

引入jar:  commons-io-2.4.jar一、概述这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。 

2018-02-07 13:17:11 1613

原创 栅栏Exchanger

Exchanger与CyclicBarrier区别是,前者可以用于2个线程交换数据。Exchanger一般用于2个线程,在到达栅栏位置调用exchange(Object o)方法,如果全部线程没有到达栅栏位置,此时先到的线程会阻塞,只到全部线程到达栅栏位置。exchange方法会提交本线程的数据(参数),获取另外一个线程提交的数据(响应)。package cn.concurrent.t

2018-02-07 12:07:28 272

原创 栅栏 CyclicBarrier

栅栏:所有线程到达栅栏位置之前,先到达的线程会被阻塞,直到所有线程全部到达栅栏位置,全部线程继续执行。栅栏等待的是线程,到达终止状态会被重置,可以继续使用,这一点与闭锁不同,闭锁等待的是事件,到达终止状态状态不可以再改变。CyclicBarrier是一种栅栏,构造器可以初始化线程数量,还可以初始化一个Runnable任务,在栅栏释放,所有线程继续执行时选择一个线程来执行Runnable任务。

2018-02-07 12:03:52 239

原创 信号量Semaphore

信号量用来限制同一时间访问同一资源的线程的数量,可以实现资源池。信号量会初始化一定数量的虚拟许可,线程在执行操作前会先获取许可,若当前没有可用许可线程会阻塞,直到有可用许可,操作完成后会释放许可。package cn.concurrent.t10;import java.util.concurrent.Semaphore;public class T4 { private final

2018-02-06 15:40:04 215

原创 闭锁 FutureTask创建异步任务

FutureTask 是一种闭锁,它是Callable实现的,一种有返回值的Runnable,其状态包括:准备运行,运行中,运行结束,其get方法在运行结束之前一直处于阻塞状态。异步返回结果是计算线程安全发布到调用线程的。下面是异步调用的一个简单应用:package cn.concurrent.t10;import java.util.Random;import java.util.co

2018-02-06 11:20:34 257

原创 CountDownLatch 闭锁的一个简单应用

闭锁:它是一种同步工具类,可以延缓线程的进度,直到其到达终止状态,CountDownLatch 是闭锁的一种实现。它的常用的两个方法:await 和 countdown假设初始化 CountdownLatch c=new CountDownLatch(2); 当前线程执行到c.await()时候会阻塞,直到其他线程执行2次c.countdown(),当前线程才解除阻塞。下面是一个应

2018-02-05 17:40:14 257

原创 maven 打可执行jar

maven-assembly-plugin                                                                  jar-with-dependencies                                                                             

2018-02-02 10:51:50 221

rocketmq-console.zip

RocketMQ控制台,下载后对资源解压,修改Pom中RocketMQ版本修改配置文件中RocketMQ nameServer地址,用Maven编译,运行target目录下的jar即可

2021-11-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除