小编Jar*_*lav的帖子

如何从多个线程中获取第一个结果并取消剩余

我有请求和多个线程,它们以不同的方式寻找结果,每个线程应该在某个时候得到一些结果..我需要从第一个完成的线程中获取结果,返回这个结果并杀死所有剩余的线程。当我返回一些默认结果时,我也有超时..

我能想到两个解决方案,但对我来说,没有一个是“正确的”。

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)

java multithreading

6
推荐指数
1
解决办法
2610
查看次数

角材料设计复选框黑色前景色(符号颜色)

<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)

任何解决方法如何改变颜色都欢迎!

css typescript angular-material angular

1
推荐指数
1
解决办法
570
查看次数