Concurrent
文章平均质量分 92
哈天奇不奇
这个作者很懒,什么都没留下…
展开
-
Concurrent - Semaphore - Semaphore(int permits)
原创转载请注明出处:http://agilestyle.iteye.com/blog/2342878 Semaphore所提供的功能完全是synchronized关键字的升级版,但它提供的功能更加的强大和方便,主要的作用是控制线程并发的数量。Semaphore(int permits) 设置permits为1Service.javapackage org.fool....原创 2016-12-05 15:33:27 · 288 阅读 · 0 评论 -
Concurrent - CyclicBarrier
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343979 CyclicBarrierCyclicBarrier允许一组线程互相等待,直到到达某个公共屏障点(common barrier point),这些线程必须实时地互相等待,这种情况下就可以使用CyclicBarrier来方便地实现这样的功能。另外,CyclicBarrier的公共屏障...原创 2016-12-09 14:26:27 · 155 阅读 · 0 评论 -
Concurrent - Phaser - arriveAndAwaitAdvance() & arriveAndDeregister()
原创转载请注明出处:http://agilestyle.iteye.com/blog/2344591 Phaser提供了动态增减parties计数,这点比CyclicBarrier类操作parties更加方便,通过若干个方法来控制多个线程之间同步运行的结果,还可以实现针对某一个线程取消同步运行的效果,而且支持屏障处等待,在等待时还支持中断或非中断等功能,使用Java并发类对线程进行分组...原创 2016-12-13 10:27:54 · 461 阅读 · 0 评论 -
Concurrent - Phaser - getPhase() & onAdvance(int phase, int registeredParties)
原创转载请注明出处:http://agilestyle.iteye.com/blog/2344616 getPhase()getPhase()作用是获取已经到达第几个屏障PhaserTest4.javapackage org.fool.java.concurrent.phaser;import java.util.concurrent.Phaser;publ...原创 2016-12-13 11:50:58 · 150 阅读 · 0 评论 -
Concurrent - Phaser - 操纵Parties的常用API
原创转载请注明出处:http://agilestyle.iteye.com/blog/2344621 getRegisteredParties()getRegisteredParties()作用是获得注册的parties数量register()register()作用是动态添加一个parties值PhaserTest6.javapackage org.fool....原创 2016-12-13 12:27:42 · 82 阅读 · 0 评论 -
Concurrent - Phaser - arrive()
原创转载请注明出处:http://agilestyle.iteye.com/blog/2344634 arrive()arrive()作用是使parites值加1,并且不在屏障处等待,直接运行下面的代码,并且Phaser有计数重置功能PhaserTest8.javapackage org.fool.java.concurrent.phaser;import java...原创 2016-12-13 13:17:22 · 139 阅读 · 0 评论 -
Concurrent - Phaser - awaitAdvance & awaitAdvanceInterruptibly
原创转载请注明出处:http://agilestyle.iteye.com/blog/2344661 awaitAdvance(int phase)awaitAdvance(int phase)作用是如果传入参数phase值和当前getPhase()返回值一样,则在屏障处等待,否则立刻返回执行下面的代码PhaserTest11.javapackage org.fool.ja...原创 2016-12-13 14:53:51 · 370 阅读 · 0 评论 -
Concurrent - Phaser - forceTermination() & isTerminated()
原创转载请注明出处:http://agilestyle.iteye.com/blog/2344789 forceTermination()forceTermination()的作用是使Phaser对象的屏障功能失效 isTerminated()isTerminated()的作用是判断Phaser对象是否已经呈销毁状态 PhaserTest18.javapac...原创 2016-12-14 10:11:43 · 155 阅读 · 0 评论 -
Concurrent - 多线程
原创转载请注明出处:http://agilestyle.iteye.com/blog/2356830 Java中有几种方法可以实现一个线程?继承Thread类(不支持多继承)实现Runnable接口实现Callable接口线程池ThreadPoolExecutorNote:Callable接口和Runnable接口区别Callable接口的call()...原创 2017-02-13 15:32:13 · 144 阅读 · 0 评论 -
Concurrent - 锁
原创转载请注明出处:http://agilestyle.iteye.com/blog/2356898 什么是可重入锁(ReentrantLock)?Java多线程中可以使用synchronized关键字来实现线程之间的同步互斥,但在JDK1.5中新增加了ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大,比如 嗅探锁定、多路分支通知等功能Reentran...原创 2017-02-13 21:02:49 · 141 阅读 · 0 评论 -
Concurrent - 并发框架
原创转载请注明出处:http://agilestyle.iteye.com/blog/2356899 SynchronizedMap和ConcurrentHashMap有什么区别?后者具有更高的并发SynchronizedMap锁的是整个对象ConcurrentHashMap锁的是段... /** * Maps the specif...原创 2017-02-13 21:06:03 · 99 阅读 · 0 评论 -
Concurrent - 线程安全
原创转载请注明出处:http://agilestyle.iteye.com/blog/2356901 什么叫线程安全?servlet是线程安全吗?在多线程调用情况下,依然表现正常不是 同步有几种实现方法?锁和volatile volatile有什么用?能否用一句话说明下volatile的应用场景?保持可见性,在1写N读的情况下比较适合 请说明...原创 2017-02-13 21:23:33 · 167 阅读 · 0 评论 -
Java多线程状态切换
原创转载请注明出处:http://agilestyle.iteye.com/blog/2359863 线程状态新建(New)当线程被创建时,它只会短暂地处于这个状态。此时它已经分配了必须的系统资源,并执行了初始化。此刻线程已经有资格获得CPU时间了,之后调度器将把这个线程转变为可运行状态或阻塞状态。就绪(Runnable)在这种状态下,只要调度器把时间片分配给线程,线程...原创 2017-03-02 14:58:59 · 135 阅读 · 0 评论 -
interrupted()和isInterrupted()的区别
原创转载请注明出处:http://agilestyle.iteye.com/blog/2359893 Method in Java Doc 调用interrupt()方法仅仅是在当前线程中打了一个停止的标记,并不是真正的停止线程package org.fool.java.concurrent.interrupt;public class InterruptTest1...原创 2017-03-02 16:29:16 · 150 阅读 · 0 评论 -
Concurrent - CountDownLatch
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343903 CountDownLatchCountDownLatch所提供的功能是判断count计数不为0时,则当前线程处于wait状态。await()的作用是实现等待,判断计数是否为0,如果不为0则呈等待状态。countDown()的作用是继续运行,其他线程可以调用此方法将计数减...原创 2016-12-09 11:05:56 · 135 阅读 · 0 评论 -
Concurrent - CompletionService
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343752 CompletionService的功能是以异步的方式一边生产新的任务,一边处理已完成任务的结果,这样可以将执行任务与处理任务分离开来进行处理。使用submit()执行任务,使用take()取得已完成的任务,并按照完成这些任务的时间顺序处理它们的结果。这样就可以很好的解决Future接...原创 2016-12-08 15:24:01 · 102 阅读 · 0 评论 -
Concurrent - Semaphore - acquire(int permits)
原创转载请注明出处:http://agilestyle.iteye.com/blog/2342898 有参方法acquire(int permits)表示每调用1次此方法,就使用Semaphore中的x个permitsService.javapackage org.fool.java.concurrent.semaphore.acquire;import java....原创 2016-12-05 16:29:59 · 197 阅读 · 0 评论 -
Concurrent - Semaphore - acquireUninterruptibly()
原创转载请注明出处:http://agilestyle.iteye.com/blog/2342923 acquireUninterruptibly()作用是使等待进入acquire()方法的线程,不允许被中断。acquireUninterruptibly()还有重载的方法acquireUninterruptibly(int permits),此方法的作用是在等待permits的情况...原创 2016-12-05 17:10:16 · 621 阅读 · 1 评论 -
Concurrent - Semaphore - availablePermits() & drainPermits()
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343040 availablePermits()返回此Semaphore对象中当前可用的permits个数drainPermits()获取并返回立即可用的所有permits个数,并将可用permits置为0 AvailablePermitsTest.javapackage org....原创 2016-12-06 10:05:00 · 1193 阅读 · 0 评论 -
Concurrent - Semaphore - getQueueLength() & hasQueuedThreads()
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343056 getQueueLength()作用是取得等待permits的线程个数hasQueuedThreads()作用是判断有没有线程在等待permits这两个方法通常都是在判断当前有没有等待permits的线程信息时使用Service.javapackage org.fool...原创 2016-12-06 10:57:08 · 339 阅读 · 0 评论 -
Concurrent - Semaphore - tryAcquire
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343117 tryAcquire()无参方法tryAcquire()的作用是尝试获取1个permits,如果获取不到则返回false,此方法通常与if语句结合使用,具有无阻塞的特点。Service.javapackage org.fool.java.concurrent.sema...原创 2016-12-06 14:17:02 · 375 阅读 · 0 评论 -
Concurrent - Semaphore - Async & Sync
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343157 异步即无阻塞Service.javapackage org.fool.java.concurrent.semaphore.async;import java.util.concurrent.Semaphore;public class Service { ...原创 2016-12-06 15:39:46 · 126 阅读 · 0 评论 -
Concurrent - Producer & Consumer
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343193 生产者与消费者模式使用wait/notify实现生产者与消费者模式package org.fool.test;import java.util.Queue;import java.util.Random;import java.util.concurrent.C...原创 2016-12-06 17:15:59 · 91 阅读 · 0 评论 -
Concurrent - Exchanger - exchanger()
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343280 exchange()阻塞Exchanger中的exchange()方法具有阻塞的特点,也就是此方法被调用后等待其他线程来取数据,如果没有其他线程来取数据,则一直阻塞等待。ThreadA.javapackage org.fool.java.concurrent.exch...原创 2016-12-07 09:25:14 · 105 阅读 · 0 评论 -
Concurrent - Executors - newCachedThreadPool()
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343390 使用Executors的newCachedThreadPool()创建的是无界线程池,可以进行线程的自动回收。所谓的“无界线程池”就是池中存放线程个数是理论上的Integer.MAX_VALUE最大值。 ExecutorTest1.javapackage org.foo...原创 2016-12-07 14:35:55 · 416 阅读 · 0 评论 -
Concurrent - Executors - newFixedThreadPool(int nThreads)
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343518 使用newFixedThreadPool(int nThreads)方法创建的是有界线程池,也就是线程池中的线程个数可以指定最大数量。 MyThread.javapackage org.fool.java.concurrent.executor.fixed;pu...原创 2016-12-07 15:16:01 · 201 阅读 · 0 评论 -
Concurrent - Executors - newSingleThreadExecutor()
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343526 使用newSingleThreadExecutor()方法可以创建单一线程池,单一线程池可以实现以队列的方式来执行任务。SingleThreadPoolTest.javapackage org.fool.java.concurrent.executor.single;...原创 2016-12-07 15:40:00 · 205 阅读 · 0 评论 -
Concurrent - Future & Callable
原创转载请注明出处:http://agilestyle.iteye.com/admin/blogs/2343551 Future Callable 接口Callable与线程功能密不可分,但和Runnable的主要区别为:Callable接口的call()方法可以有返回值,而Runnable接口的run()方法没有返回值Callable接口的call()方法可以...原创 2016-12-07 17:00:13 · 94 阅读 · 0 评论 -
Concurrent - execute() & submit()
原创转载请注明出处:http://agilestyle.iteye.com/blog/2343704 execute()execute()没有返回值,在默认的情况下异常直接抛出,不能捕获,但可以通过自定义ThreadFactory的方式进行捕获 submit()submit()有返回值,在默认的情况下,可以catch ExecutionException捕获异常 ...原创 2016-12-08 13:06:29 · 142 阅读 · 0 评论 -
Java中volatile如何保证long和double的原子性操作
原创转载请注明出处:http://agilestyle.iteye.com/blog/2359969 关键字volatile的主要作用是使变量在多个线程间可见,但无法保证原子性,对于多个线程访问同一个实例变量需要加锁进行同步。package org.fool.java.concurrent.volatiletest;import java.util.concurrent.E...原创 2017-03-02 23:05:08 · 4567 阅读 · 2 评论