public void startButtonClicked() {
Task task = new Task<Void>() {
@Override
public Void call() {
int i = 0;
while (i < 3) {
for (Future<Boolean> future : futures) {
try {
if (future.get() == true && i == 0) {
labelFirst.setVisible(true);
i++;
}
if (future.get() == true && i == 1) {
labelSecond.setVisible(true);
i++;
}
if (future.get() == true && i == 2) {
labelThird.setVisible(true);
i++;
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
return null;
}
};
for (Callable c : callables) {
futures.add(executorService.submit(c));
}
new Thread(task).start();
executorService.shutdown();
}
在我的理想解决方案中,每个标签将在其可调用完成时变得可见,因此labelSecond应该在LabelFirst之后出现一段时间。它是我的Callable:
public Boolean call() {
double raceTime = ThreadLocalRandom.current().nextDouble(45.0, 60.0);
try {
for (double i = 0; i < raceTime; i += 0.01) {
TimeUnit.MILLISECONDS.sleep(1);
progressBar.setProgress(i / raceTime);
}
} catch (ParseException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
return true;
}
编辑:通过检查Future.isDone()和很少的更改,它可以像我希望的那样工作。
public void startButtonClicked() {
Task task = new Task<Void>() {
@Override
public Void call() {
int i = 0;
while (i < 3) {
i = 0;
for (Future<Boolean> future : futures) {
if (future.isDone() == true) i++;
if (i == 1) {
labelFirst.setVisible(true);
labelFirstCyclistName.setVisible(true);
}
if (i == 2) {
labelSecond.setVisible(true);
labelSecondCyclistName.setVisible(true);
}
if (i == 3) {
labelThird.setVisible(true);
labelThirdCyclistName.setVisible(true);
}
}
}
return null;
}
};
for (Cyclist c : cyclists) {
futures.add(executorService.submit(c));
}
new Thread(task).start();
executorService.shutdown();
}
问题是,在future列表的第一个元素为true之前(在第一个线程完成之前),我的标签是不可见的。我真的不知道为什么,我会非常感谢你的帮助。
根据Future#Get的文档
如果需要,等待计算完成,然后检索其结果。
public Void call() {
int i = 0;
while (i < 3) {
for (Future<Boolean> future : futures) {
try {
if (future.get() == true && i == 0) {
我正在编写一个函数,该函数应该删除链表的最后一个元素 这是我对节点的定义 我有一个节点列表1,它为值1、2、3运行了3次insert函数 insert函数如下所示 现在我的delete_last_element函数如下所示 基本上,我的想法是,我会先看看第一个元素是否为空,如果是,我什么也不做,因为没有最后一个元素。然后我将curr设置为head->next以查看列表中的下一个元素,如果它为nul
我有一个实例列表。 如何将他们转变成这样一个未来:
问题内容: 我是AngularJS的初学者,目前我正在Django中开发一个Web应用程序,在该应用程序中我可以使用AngularJS作为前端部分。我的问题是,用作用域中的对象填充的下拉列表始终以空白元素开头(如果我从列表中选择一个,该问题就不存在了)。这会产生问题,因为如果用户不选择任何内容,那么POST请求通常将不再起作用。我想知道如何拥有类似预选值或类似的东西。这是我的代码的一部分: 选择标
我有一个标准脚本,可以抓取页面,启动与数据库的连接,并将数据库写入其中。我需要它在x小时后定期执行。我可以使用bash脚本和伪代码来做到这一点: 根据我对消息代理的了解,它们用于将“信号”从一个正在运行的程序发送到另一个程序,原则上就像HTTP一样。就像我有一段接受用户电子邮件ID的代码一样,它将带有email-id的信号发送到另一段将发送电子邮件的代码。 我需要芹菜来运行heroku的定期任务。
问题内容: 我最近与一位同事讨论了Java为什么List接口没有and 方法的原因。 为了实现这样的功能,必须编写一个看起来像这样的包装器: 我不知道所有List的实现,但我假设至少在LinkedList和ArrayList中, 获取最后一个元素和第一个元素 (恒定时间)应该是很简单的。 所以问题是: 是否有一个特定的原因为什么不能为任何List实现提供tail方法? 问题答案: Java Col
我希望表的所有都具有,其被的重写。 结果应该变成: 我可以通过单独的查询获得它,例如: 第二个查询的结果应该合并到第一个查询中,这样:“当第二个表中的boolean为TRUE时,用第一个表覆盖第二个表的结果” role_cap和enduser_cap表中的正确值都应该成为结果的一部分。但是,如果对于相同的user_cap_id,role_cap有FALSE条目,而enduser_cap有TRUE条