@Override
    public void countDown() {
        get(countDownAsync());
    }
@Test
    public void testCountDown() throws InterruptedException {
        RCountDownLatch latch = redisson.getCountDownLatch("latch");
        latch.trySetCount(2);
        Assertions.assertEquals(2, latch.getCount());
        latch.countDown();
        Assertions.assertEquals(1, latch.getCount());
        latch.countDown();
        Assertions.assertEquals(0, latch.getCount());
        latch.await();
        latch.countDown();
        Assertions.assertEquals(0, latch.getCount());
        latch.await();
        latch.countDown();
        Assertions.assertEquals(0, latch.getCount());
        latch.await();

        RCountDownLatch latch1 = redisson.getCountDownLatch("latch1");
        latch1.trySetCount(1);
        latch1.countDown();
        Assertions.assertEquals(0, latch.getCount());
        latch1.countDown();
        Assertions.assertEquals(0, latch.getCount());
        latch1.await();

        RCountDownLatch latch2 = redisson.getCountDownLatch("latch2");
        latch2.trySetCount(1);
        latch2.countDown();
        latch2.await();
        latch2.await();

        RCountDownLatch latch3 = redisson.getCountDownLatch("latch3");
        Assertions.assertEquals(0, latch.getCount());
        latch3.await();

        RCountDownLatch latch4 = redisson.getCountDownLatch("latch4");
        Assertions.assertEquals(0, latch.getCount());
        latch4.countDown();
        Assertions.assertEquals(0, latch.getCount());
        latch4.await();
    }