并发编程常用类

Semaphore:synchronized关键字的加强版,主要用来控制线程并发的数量(permits)。类发放许可的方式使减法操作,主要方法:acquire(permits),release(permits)。availablePermits()返回可用permits。drainPermits()获取并返回力气可用的permits,使permits=0。getQueueLength():取得等待permits的线程个数,hasQueuedThreads():有无等待许可的线程。

tryAcquire(permits),

Semaphore semaphore = new Semaphore(permits,isFaire)。公平是指是否与线程启动顺序有关,但不代表100%。

Exchanger:用来在两个线程之间传输数据。主要方法exchange()具有阻塞特性。

CountDownLatch:更具意思就可知是一个减数锁。当count不为0时呈wait状态。主要方法await():等待count为0。countDown():count-1。getCount():...。

CyclicBarrier:循环的CountDownLatch,

Phaser:计数操作时加法操作。可以动态添加parties计数。主要方法:arriveAndAwaitAdvance(),arriveAndDeregister(),getPhase(),onAdvance(),getRegisteredParties(),register(),bulkRegister(),getArrivedParties(),getUnarrivedParties(),arrive(),awaitAdvance(),forceTermination(),isTerminated(),

Executor:

ThreadPoolExecutor:

Future,Callable: Future.get()有阻塞特性。

CompletionService:

ThreadPoolExecutor executor = new ThreadPoolExecutor(5,10,5,TimeUnit.SECONDS,new LinkedBlockingDeque<Runnable>());

CompletionService csRef = new ExecutorCompletionService(executor);

csRef.submit(....);csRef.take().get()。

ScheduledExecutorService :

ForkJoinPool:

未完待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值