广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java同步器中的锁存器是什么?_北大青鸟IT学校

作者:邓华发布时间:2021-05-12分类:Java技术浏览:802


导读:你知道Java同步器中的锁存器是什么吗?接下来惠州北大青鸟老师给大家介绍一下Java同步器中的锁存器是什么。

你知道Java同步器中的锁存器是什么吗?接下来惠州北大青鸟老师给大家介绍一下Java同步器中的锁存器是什么。

锁存器使一组线程等待,直到它到达其终端状态。

一旦锁存器达到其终端状态,它允许所有线程通过。

与障碍不同,它是一个一次性的对象。它不能被重置和重用。

使用锁存器,其中在一定数量的一次性活动完成之前,多个活动不能进行。

例如,一个服务不应该启动,直到它依赖的所有服务都已启动。

java.util.concurrent包中的CountDownLatch类提供了一个锁存器的实现。

import java.util.concurrent.CountDownLatch;class LatchHelperService extends Thread {  private int ID;  private CountDownLatch latch;  public LatchHelperService(int ID, CountDownLatch latch) {
   this.ID = ID;
   this.latch = latch;
 }  public void run() {    try {
     Thread.sleep(1000);
     System.out.println("Service #" + ID + "  has  started...");
   } catch (InterruptedException e) {
     e.printStackTrace();
   } finally {
     this.latch.countDown();
   }
 }
}class LatchMainService extends Thread {  private CountDownLatch latch;  public LatchMainService(CountDownLatch latch) {
   this.latch = latch;
 }  public void run() {    try {
     System.out.println("waiting for services to start.");
     latch.await();
     System.out.println("started.");
   } catch (InterruptedException e) {
     e.printStackTrace();
   }
 }
}public class Main {  public static void main(String[] args) {    // Create a countdown latch with 2 as its counter    CountDownLatch latch = new CountDownLatch(2);
   LatchMainService ms = new LatchMainService(latch);
   ms.start();    for (int i = 1; i <= 2; i++) {
     LatchHelperService lhs = new LatchHelperService(i, latch);
     lhs.start();
   }
 }
}

上面的代码生成以下结果。

waiting for service to start.

Service #2 has started...

Service #1 has started...

started.

更多Java资讯关注网站动态,或者来惠州北大青鸟新方舟校区了解一下。

Java16.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表