有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android的未来。get()使UI冻结

我正在使用callable在单独的线程中运行。但是当我调用futAdd.get()时,我的UI被冻结了

我的密码是

        Callable<Double[]> calAdd = new addCallable(values,values_2);
        ExecutorService exec = Executors.newFixedThreadPool( 3 );
        Future<Double[]> futAdd = exec.submit( calAdd );

        try {
            Double[] ans = futAdd.get();
            }
            catch(Exception e){
                 //
            }

为什么应用程序在单独的线程上运行时会冻结


共 (1) 个答案

  1. # 1 楼答案

    用户界面已经冻结,因为它有太多的线程工作,你可以做下一步

     val thread = Thread(Runnable {
                      Callable<Double[]> calAdd = new addCallable(values,values_2);
            ExecutorService exec = Executors.newFixedThreadPool( 3 );
            Future<Double[]> futAdd = exec.submit( calAdd );
    
            try {
                Double[] ans = futAdd.get();
                }
                catch(Exception e){
                     //
                }
                })
           thread.start()
    

    //如果你想等待结果,你可以等待结果

    thread.join();