sen istemiyorsanız: Burada
bir (basit) bir örnektir Callable nesnelerini kullanmak için çözümü takas etmek için kuyrukları da kullanabilir ve sonucu iş parçacığından bu şekilde döndürebilirsiniz. Böyle
ben yeniden yazdım senin örnek: senkronizasyonu ve eşzamanlılık düşünmek zorundadır
import java.util.PriorityQueue;
import java.util.Queue;
public class GetResultFromThread {
public static void main(String[] args) throws Exception {
Queue<String> queue = new PriorityQueue<String>();
int expectedResults = 2;
for (int i = 0; i < expectedResults; i++) {
new Example(queue).start();
}
int receivedResults = 0;
while (receivedResults < expectedResults) {
if (!queue.isEmpty()) {
System.out.println(queue.poll());
receivedResults++;
}
Thread.sleep(1000);
}
}
}
class Example extends Thread {
private final Queue<String> results;
public Example(Queue<String> results) {
this.results = results;
}
@Override
public void run() {
results.add("result from thread");
}
}
Not!
'th.start()' olmalıdır. Ve iş parçacığından bir değer döndürme yöntemlerinden birini uyguladınız. –