Tôi cố gắng làm việc với các loại FutureTask
, Future
, Runnable
, Callable
và ExecutorService
của Java.Tính tương thích của FutureTask của Java
Phương pháp hay nhất để soạn những khối xây dựng đó là gì?
Cho rằng tôi có nhiều FutureTask
giây và tôi muốn thực thi chúng theo thứ tự.
ofcourse Tôi có thể tạo một FutureTask khác đang gửi/chờ kết quả cho mỗi thao tác theo trình tự, nhưng tôi muốn tránh chặn cuộc gọi.
Một tùy chọn khác sẽ là để những nhiệm vụ phụ gọi lại cuộc gọi lại khi hoàn thành và lên lịch công việc tiếp theo trong cuộc gọi lại. Nhưng đi con đường đó, làm thế nào để tôi tạo ra một đối tượng FutureTask bên ngoài thích hợp mà cũng xử lý các ngoại lệ trong subtask mà không tạo ra nhiều bản mẫu đó?
Tôi có bỏ sót điều gì ở đây không?
Cảm ơn lời giải thích đó. Về cơ bản nó chỉ ra vấn đề của tôi rất tốt. Vấn đề là nếu bạn có một số loại nhiệm vụ mà bạn muốn sử dụng lại, thì logic phải làm gì sau khi không thể được đưa vào nhiệm vụ đó và giao diện Tương lai thiếu các cuộc gọi lại không đồng bộ. Gần đây tôi đã xem https://code.google.com/p/guava-libraries/wiki/ListenableFutureExplained cũng cố gắng giải quyết vấn đề này. Nhưng tôi thường muốn tìm hiểu làm thế nào nó có nghĩa là để làm việc, và về cơ bản, nếu tôi không cho rằng họ không nghĩ về thiết kế này các giao diện, tôi vẫn không nhận được nó. – Nappy
Cách tốt nhất để cảm ơn là upvote câu trả lời. Df4j có nhiều loại khối xây dựng, bao gồm 'CallbackPromise' gần với' ForwardingCheckedFuture' của ổi. Nếu bạn thấy rằng một số loại khối xây dựng khác có giá trị bao gồm trong thư viện, chỉ cần gửi một sự cố tại https://github.com/rfqu/df4j/issues –
Có vẻ như bạn đã hiểu sai, Akka dataflow không sử dụng diễn viên: http://doc.akka.io/docs/akka/2.1.0/scala/dataflow.html, Akka Futures (hiện có trong Thư viện Chuẩn Scala, không sử dụng Diễn viên: http://doc.akka.io/ docs/akka/2.1.0/scala/futures.html) –