在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

java怎么获取线程返回值

165次阅读
没有评论

共计 1811 个字符,预计需要花费 5 分钟才能阅读完成。

Java 中获取线程返回值的常用方法有以下几种:

  1. 使用 Callable 接口和 Future 对象:创建一个 Callable 对象,并使用 ExecutorService 的 submit 方法提交该任务,返回一个 Future 对象。然后可以通过调用 Future 对象的 get 方法来获取线程的返回值。
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class Main {public static void main(String[] args) {ExecutorService executor = Executors.newSingleThreadExecutor();
        Future<Integer> future = executor.submit(new MyCallable());

        try {int result = future.get();
            System.out.println(" 线程返回值:" + result);
        } catch (Exception e) {e.printStackTrace();
        } finally {executor.shutdown();
        }
    }
}

class MyCallable implements Callable<Integer> {@Override
    public Integer call() throws Exception {// 执行耗时任务,返回结果 
        return 100;
    }
}
  1. 继承 Thread 类并重写 run 方法:通过继承 Thread 类并重写 run 方法,在执行耗时任务后,可以通过定义一个成员变量来保存返回值,然后通过调用该线程对象的 join 方法来等待线程执行结束,并获取返回值。
public class Main {public static void main(String[] args) {MyThread myThread = new MyThread();
        myThread.start();

        try {myThread.join(); // 等待线程执行结束 
            int result = myThread.getResult();
            System.out.println(" 线程返回值:" + result);
        } catch (InterruptedException e) {e.printStackTrace();
        }
    }
}

class MyThread extends Thread {private int result;

    @Override
    public void run() {// 执行耗时任务 
        result = 100;
    }

    public int getResult() {return result;
    }
}
  1. 使用 FutureTask 类:可以将 Callable 对象作为参数传递给 FutureTask 类的构造方法,然后通过调用 FutureTask 对象的 get 方法来获取线程的返回值。
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

public class Main {public static void main(String[] args) {FutureTask<Integer> futureTask = new FutureTask<>(new MyCallable());
        Thread thread = new Thread(futureTask);
        thread.start();

        try {int result = futureTask.get();
            System.out.println(" 线程返回值:" + result);
        } catch (InterruptedException | ExecutionException e) {e.printStackTrace();
        }
    }
}

class MyCallable implements Callable<Integer> {@Override
    public Integer call() throws Exception {// 执行耗时任务,返回结果 
        return 100;
    }
}

这些方法都可以用来获取线程的返回值,选择哪种方法取决于实际需求和场景。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-13发表,共计1811字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产成人精品免费视频大全五级 | 亚洲成a人v欧美综合天堂麻豆 | 日本一级毛片片在线播放 | 午夜剧院官方 | 国产色网| 午夜神马福利免费官方 | 自拍另类 | 亚洲午夜久久久久久噜噜噜 | 国产伦理久久精品久久久久 | 国内精品美女久久久久 | 在线视频不卡国产在线视频不卡 | 亚洲福利精品一区二区三区 | 成人黄色视屏 | 久久国产精品久久久 | 欧美日韩a∨毛片一区 | 99精品国产成人一区二区在线 | 色婷婷影院 | 99re这里只有精品在线观看 | 国产91精品久久久久久久 | 国产情侣一区二区 | 女人体1963午夜免费视频 | 成人影视大全 | 国产手机精品一区二区 | 欧美人与性动交ccoo | 亚洲精品无码中文久久字幕 | 亚洲人精品午夜射精日韩 | 免费观看黄频视 | 全程粗话对白视频videos | 国产成人无码av在线播放dvd | 天天狠狠色综合图片区 | 亚洲熟妇少妇任你躁在线观看无码 | 特级毛片免费视频播放 | 老熟女多次高潮露脸视频 | 天天射天天操天天干 | 国产 一区| 美女脱了内裤趴开腿让男生添 | 国产欧美综合在线一区二区三区 | 五月天网站最新的网址 | 爱爱小视频日本 | 色一情一乱一伦一区二区三欧美 | 欧美xxxxxxxx|