执行完成后从线程返回值

萨吉鲁比

Java Thread正在使用一个异步将某些文件上传到服务器的协议。完成上传后,我需要线程返回一些值。因此,如示例中所述,我创建了另一个方法,该方法返回一些值并从主类访问该方法。根据我的要求,我必须上载多个文件,以便该线程第二次运行时挂起t1.join()因此,我需要知道什么是解决我的问题的最佳方法。

我的上传主题:

public class UploadThread extends Thread {

    public UploadThread() {

    }

    @Override
    public void run() {

        try {
            //Upload happens here

        } catch (IOException ex) {
            Logger.getLogger(UploadThread.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    //Method use to return upload status
    public String status() {
        //verify upload has completed
        return "Upload successful";
    }
}

从主类调用线程:

//Calling upload thread multiple times depends on no of files
for (int i = 0; i < fileList.length; i++) {

    UploadThread t1 = new UploadThread();
    t1.start();
    t1.join();
    String status = t1.status();
    System.out.println(status);

}
萨吉鲁比

我已经实现了带有回调的Future接口,如下所示。它解决了我的问题。

Callable 实施:

public class Upload implements Callable<Integer> {
    public Upload() {  
    }

    @Override
    public Integer call() {
        try {
            //Upload happens here. after completing returns value as required.  
            return 0;
        }
    }    
}

从主类执行可调用:

for (int i=0; i<fileList.length;i++) {
    Upload up = new Upload();
    FutureTask<Integer> future = new FutureTask(up);
    future.run();
    int result = future.get();
}

我从这里开始跟随例子

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

线程完成后如何获取返回值

来自分类Dev

JS许诺完成后返回值

来自分类Dev

URLSession中的任务完成后返回值

来自分类Dev

J2ME-如何使线程返回值,并且在该线程完成后,在其他操作中使用返回值?

来自分类Dev

所有线程完成执行后如何返回值

来自分类Dev

如何在函数中进行异步工作,然后在完成后从该函数返回值?

来自分类Dev

Unity-仅在协程完成后才需要返回值

来自分类Dev

函数完成后运行代码并获得返回值

来自分类Dev

使用异步库,等到队列中的所有任务完成后返回值

来自分类Dev

setTimeout完成后执行

来自分类Dev

等到函数完成后再继续执行主线程(一个线程)

来自分类Dev

完成后将openmp线程返回到单线程

来自分类Dev

从线程返回值?

来自分类Dev

从线程返回值?

来自分类Dev

从线程返回值?

来自分类Dev

线程完成后捕获异常

来自分类Dev

线程完成后停止程序

来自分类Dev

Android:线程完成后使用setContentView()

来自分类Dev

在nodjs和javascript中完成forloop后返回值

来自分类Dev

执行完成后关闭Realm实例

来自分类Dev

$ digest完成后如何执行代码?

来自分类Dev

页面加载完成后执行javascript

来自分类Dev

操作完成后执行功能

来自分类Dev

绑定完成后执行操作

来自分类Dev

异步功能完成后执行功能

来自分类Dev

操作完成后执行功能

来自分类Dev

动画完成后执行segue

来自分类Dev

UIView beginAnimations完成后执行操作

来自分类Dev

首先完成后执行jQuery函数