我有请求和多个线程,它们以不同的方式寻找结果,每个线程应该在某个时候得到一些结果..我需要从第一个完成的线程中获取结果,返回这个结果并杀死所有剩余的线程。当我返回一些默认结果时,我也有超时..
我能想到两个解决方案,但对我来说,没有一个是“正确的”。
1)循环遍历任务,询问是否完成,睡一会并返回它找到的第一个完成的任务..
import java.util.ArrayList;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import org.apache.log4j.LogManager;
public class App {
public static final ExecutorService executors = Executors.newCachedThreadPool();
public static void main(String[] args) {
ArrayList<Future<String>> taskList = new ArrayList<>();
taskList.add(executors.submit(new Task1()));
taskList.add(executors.submit(new Task2()));
String result = null;
long start = System.currentTimeMillis();
long timeout = 1000;
while ((start + timeout) < System.currentTimeMillis()) {
try {
for (Future<String> …
Run Code Online (Sandbox Code Playgroud) 我<mat-checkbox> ... </mat-checkbox>
在应用程序中使用了一个组件,我需要将符号的颜色(“ tick”?)设置为黑色。我可以通过CSS设置背景颜色,但“前景”颜色无效。
码:
my.ts
<mat-checkbox name="{{field.name}}"
[ngModel]="field.valueChecked"
...
[ngClass]="{
'mandatory': field.mandatory == true
,'optional': field.mandatory == false
,'checkbox' : true}"
>
</mat-checkbox>
my.css
.checkbox {
background-color: #3197ee !important;
color: #050911 !important;
}
Run Code Online (Sandbox Code Playgroud)
任何解决方法如何改变颜色都欢迎!