美文网首页
Java异步任务转同步任务的方式

Java异步任务转同步任务的方式

作者: Answer_yzpppp | 来源:发表于2017-03-26 21:14 被阅读829次

    1.Java的CountDownLatch

    CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。

    主要方法

    public CountDownLatch(int count);

    public voidcountDown();

    public voidawait() throwsInterruptedException

    构造方法参数指定了计数的次数

    countDown方法,当前线程调用此方法,则计数减一

    await方法,调用此方法会一直阻塞当前线程,直到计时器的值为0

    2.Thread.join

    Thead.join方法同样可以使当前线程阻塞,直到另一个线程执行完毕。

    用法:

    public class A(){

     doSomeThing;

    B.join();

    doSomeThing After B finish;

    }

    在Thread A中调用Thread B的join方法。A线程阻塞,B线程执行,B线程执行完毕后,A线程继续执行

    另外Java还有一个和CountDownLatch类很相似的同步辅助类CyclicBarrier。它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。使用场景是需要所有的子任务都完成时,才执行主任务。这篇博客中有例子:http://blog.csdn.net/shihuacai/article/details/8856407

    相关文章

      网友评论

          本文标题:Java异步任务转同步任务的方式

          本文链接:https://www.haomeiwen.com/subject/teokottx.html