2016-03-16 3 views
1

Я пытаюсь создать новый процесс потока, после завершения процесса потока я хочу получить результат из этого класса. Как я могу это сделать?
Например, это два класса. Допустим, класс abThread возвращает массив String. Как мне получить эти значения String.Значение передачи Java между двумя классами

Class A{ 

    public static void main(String[] args){ 
     abThread bb=new abThread(); 
     bb.start(); 
     // when bb.run() returns data catch it 
    } 
} 

Class abThread extends Thread{ 
    public void run(){ 
     **// do smth here** 
     // then return result to the main Class 
    } 
} 
+0

использовать функцию обратного вызова, они разработаны для таких вещей ... –

+1

Смотрите этот ответ http://stackoverflow.com/a/17255553/5620549 – Redtama

ответ

3

Что вы ищете является Callable так:

public class MyCallable implements Callable<String[]> 
    { 

     @Override 
     public String [] call() throws Exception 
     { 
      //Do your work 
      return new String[42]; //Return your data 
     } 

    } 
    public static void main(String [] args) throws InterruptedException, ExecutionException 
    { 
     ExecutorService pool = Executors.newFixedThreadPool(1); 
     Future<String[]> future = pool.submit(new MyCallable()); 

     String[] myResultArray = future.get(); 
    } 
Смежные вопросы