问题标签 [countdownlatch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1761 浏览

java - 如何等待产生它自己的线程的线程?

我正在尝试测试一种在单独的线程中工作的方法,简化如下:

在我的单元测试中,我想测试 Clazz.i == 2,但我不能这样做,因为我认为断言是在线程更改值之前运行的。我想用另一个线程来测试它,然后用 join 等待,但它仍然不起作用。

SSCCE:

我认为这是因为测试主代码创​​建了一个正在等待(加入)到第二个线程的线程,但是第二个线程没有完成工作,它创建了另一个线程来完成工作然后完成,这继续第一个线程,而第三个线程Clazz.i = 2在断言之后执行。

我怎样才能使第一个线程等待它启动的线程以及该线程启动的任何线程

0 投票
1 回答
213 浏览

java - 等待外部线程启动

FileAlterationMonitorApache使用,我想知道它什么时候完成初始化。我打电话

它启动一个新线程,我的程序继续运行,之前fileAlterationMonitor完成初始化。我想等待初始化完成,但我找不到检查何时完成的方法。

我可以睡一会儿,但等待多长时间会因计算机的速度而异。

我已经看过了CountDownLatch,这在我自己的代码中似乎很简单,但是我该如何使用它FileAlterationMonitor呢?它不能扩展它,因为它是最终的。

有没有比等待“足够长”更好的解决方案?

0 投票
2 回答
814 浏览

java - Why main thread is waiting after starting first thread?

I was trying to understand the CountDownLatch usage, following is the code I am using here,

DecrementRunnable.java

CountDownDemoThread.java

Main Program,

In this main program, i was expecting this line "thread 1 started" should get printed once the thread one is started, But here main thread is blocked because of the wait statement in cdl.await() statement in cddt thread. Just wanted to know what is the reason behind this?

0 投票
2 回答
122 浏览

java - CountDownLatch :在达到 countDown 时保留线程顺序

是否可以在达到 countDown 时保留线程的顺序,因为它们会等待。

如果线程 1 在线程 2 之前调用 await,那么它们应该以相同的顺序重新调度。

这有什么意义吗:)?

0 投票
0 回答
587 浏览

java - 等待 x 秒或直到 sql 查询返回结果

我正在尝试实现一种方法,该方法可以连续运行 SQL 查询,直到它返回结果或在 x 秒后失败。

目前我的方法使用CountDownLatch:

有没有更好的方法来做到这一点?

0 投票
0 回答
669 浏览

java - CountDownLatch 阻塞异步回调

我在代码中有以下构造

发生的是CountDownLatch等待 1 分钟,然后侦听器触发。但是由于锁存器已经倒计时,false所以总是返回。在我看来,Latch 似乎阻塞了整个线程并且不让异步回调发生。我尝试将event.addListener()...零件包装在 a 中,Runnable但问题仍然存在。

我在代码的另一部分有完全相同的结构,并且它在那里工作。

编辑:我已经为它添加了日志Thread.currentThread().getId(),事实上,它确实评估为相同的 ID。异步回调不应该在不同的线程中吗?

0 投票
2 回答
3942 浏览

java - Java CountDownLatch 在 thread.run() 倒计时获得异常时等待超时值

我正在使用 aCountDownLatch来处理两个 Java 线程。我的班级结构如下:

MainClass.java
ThreadOne.java
ThreadTwo.java

主类:

主类等待其他两个线程完成它们的工作。一旦他们完成他们的工作,它就不会等到它的超时值(20 秒)。我的问题是,如果任何线程被破坏或损坏,那么CountDownLatch等待它的超时值。有什么方法可以忽略该中断的线程并在不等待 20 秒的情况下继续前进?

0 投票
3 回答
8765 浏览

android - 在继续异步之前等待改造 2 完成的最佳方法

我意识到有人问过类似的问题,但我是 android 新手,发现答案有点令人困惑,因为它们的上下文略有不同。

我查看了 CountDownLatch 以及使用 Threads,但不确定使用哪种方法。任何帮助将非常感激。对于 SharedPreferences,我也尝试过使用 apply() 而不是 commit()。

我正在从 LoginActivity 进行 2 个 retrofit2 调用。我需要第一次通话中的令牌在第二次通话中使用。我在第一次改造调用的 onResponse 方法中将令牌保存到 sharedpreferences 中的字符串中。

在我的第二次调用中,serverToken 的值作为应用程序先前运行中设置的令牌返回

第一次调用(getToken)onResponse

登录活动

我的第二次改造电话

0 投票
1 回答
4943 浏览

java - 如何使用 CountDownLatch 对方法进行单元测试?

我需要对下面使用 countdownlatch 的代码进行单元测试。这只是一个测试代码。我正在使用 mockito thenAnswer 和 InvocationOnMask 来模拟线程/可调用。但我不知道如何在单元测试中初始化/模拟或退出 countdownlatch。

我开发了单元测试类,但它没有帮助......

0 投票
2 回答
1015 浏览

java - 当在一个类内部的匿名类中实现多个可运行接口时,无法确定为什么 CountDownLatch 不起作用

如果我定义一个类Team并在该类中实现两个runnable interfaces,我不会在程序中到达任务结束的team1team2。但是,如果我runnable直接在类中实现WorkerOne,我会在它结束时打印任务的位置WorkerOne。我不明白为什么任务永远不会完成team1并且team2应用程序没有停止。我在下面的控制台输出中包含了代码。我会感激任何想法或想法。谢谢你。

控制台输出为: