Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to use CountDownLatch in Java

2025-04-02 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >

Share

Shulou(Shulou.com)06/01 Report--

Editor to share with you how to use CountDownLatch in Java. I hope you will get something after reading this article. Let's discuss it together.

Brief introduction

What's it for? When you call multiple threads in the method and do some unknown operations on the database, there is one more operation that needs to be left to the former, so CountDownLatch is needed.

Practice code package com.github.gleans

Import java.util.concurrent.CountDownLatch

Public class TestCountDownLatch {

Public static void main (String [] args) throws InterruptedException {

CountDownLatch latch = new CountDownLatch (3)

New KeyPass (1000L, "thin jack", latch). Start ()

New KeyPass (2000L, "noral jack", latch). Start ()

New KeyPass (3000L, "fat jack", latch) .start ()

Latch.await ()

System.out.println ("here is the last insert to the database ~")

}

Static class KeyPass extends Thread {

Private long times

Private CountDownLatch countDownLatch

Public KeyPass (long times, String name, CountDownLatch countDownLatch) {

Super (name)

This.times = times

This.countDownLatch = countDownLatch

}

@ Override

Public void run () {

Try {

System.out.println ("operator:" + Thread.currentThread (). GetName ()

+ "insert database, duration: + this.times / 1000 +" seconds ")

Thread.sleep (times)

CountDownLatch.countDown ()

} catch (InterruptedException e) {

E.printStackTrace ()

}

}

}

}

Illustration use await () to end the operation package com.github.gleans early

Import java.util.concurrent.CountDownLatch

Import java.util.concurrent.TimeUnit

Public class TestCountDownLatch {

Public static void main (String [] args) throws InterruptedException {

CountDownLatch latch = new CountDownLatch (3)

New KeyPass (2000L, "Company one", latch). Start ()

New KeyPass (3000L, Company II, latch). Start ()

New KeyPass (5000L, "Company III", latch). Start ()

Latch.await (2, TimeUnit.SECONDS)

System.out.println ("Chief Jia PPT Tour ~")

System.out.println ("financing is completed, flowers are scattered")

}

Static class KeyPass extends Thread {

Private long times

Private CountDownLatch countDownLatch

Public KeyPass (long times, String name, CountDownLatch countDownLatch) {

Super (name)

This.times = times

This.countDownLatch = countDownLatch

}

@ Override

Public void run () {

Try {

Thread.sleep (times)

System.out.println ("responsible person:" + Thread.currentThread (). GetName ()

+ "start work, duration:" + this.times / 1000 + "seconds")

CountDownLatch.countDown ()

} catch (InterruptedException e) {

E.printStackTrace ()

}

}

}

}

Suppose company 1, company 2 and company 3 each need 2s, 3s and 5s to complete the work, and Mr. Jia can only wait 2s, so set the await timeout.

Latch.await (2, TimeUnit.SECONDS)

Execution result

Responsible person: as soon as the company starts working, the duration: 2 seconds.

~ ~ Jia Boss PPT Tour ~

The financing is completed and the flowers are scattered.

Responsible person: company two starts work, duration: 3 seconds

Responsible person: the company starts work on the third day, lasting for 5 seconds.

Method description after reading this article, I believe you have some understanding of "how to use CountDownLatch in Java". If you want to know more about it, you are welcome to follow the industry information channel. Thank you for reading!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Internet Technology

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report