Khi tôi chờ cho kết quả của Scala tương lai, nó cư xử giống như nhận, hoặc như phản ứng, ví dụ nó chặn một chủ đề, hoặc lịch sự tiếp nối sau khi kết quả nếu có?Có phải chờ đợi chuỗi chủ đề Scala Future không?
7
A
Trả lời
15
Có, trong stdlib nó chặn chuỗi và đồng bộ chờ kết quả. Nếu bạn muốn áp dụng phong cách tiếp tục chuyển tiếp cho tương lai, bạn phải sử dụng Akka hoặc Scalaz cho phép thêm móc vào tương lai hoàn thành ngay từ hộp.
Akka:
val f1 = Future { Thread.sleep(1000); "Hello" + "World" }
val f2 = f1 map { _.length }
f2 foreach println //Done asynchronously and non-blocking
Cùng với Scalaz:
scala> val f1 = promise {Thread.sleep(1000); "Hello" + "World"}
f1: scalaz.concurrent.Promise[java.lang.String] = [email protected]
scala> val f2 = f1 map{str => str.length}
f2: scalaz.concurrent.Promise[Int] = [email protected]
scala> f2.map(println)
10
res5: scalaz.concurrent.Promise[Unit] = [email protected]
1
Nó sẽ chặn luồng hiện tại, nhưng liệu chuỗi công nhân có bị chặn hay không, nó phụ thuộc.
Các vấn đề liên quan
- 1. ListenableFuture to scala Future
- 2. Hiểu async/chờ đợi mà không đề
- 3. Chuỗi chủ đề hỗ trợ dòng lệnh có phải không?
- 4. Chủ đề Java chờ và thông báo
- 5. Điều kiện chờ đợi và chờ đợi
- 6. Chủ đề có đang chờ khóa FIFO không?
- 7. Future.wait() không thể chờ đợi mà không có chất xơ (trong khi chờ đợi một tương lai khác trong Meteor.method)
- 8. Xử lý chuỗi thời gian chờ và tương lai Scala
- 9. TraversableOnce, Future và Option trong Scala for comprehension
- 10. Chờ cho nhiều chủ đề (chủ đề Posix, C++)
- 11. Chủ đề và Hàng đợi
- 12. Đây có phải là (Khóa-Miễn phí) Thực thi Hàng đợi An toàn Chủ đề không?
- 13. OutOfMemoryError - tại sao Chủ đề chờ đợi không được thu gom rác?
- 14. Có phải chờ đợi thực hiện phần còn lại của phương thức không đồng bộ không?
- 15. làm cho chương trình chính chờ đợi cho các chủ đề để kết thúc
- 16. Chủ đề .NET có thể chờ đợi như thế nào trên một syncblk không thuộc sở hữu của bất kỳ chủ đề nào?
- 17. chờ đợi chủ đề cho đến khi một điều kiện đã xảy ra
- 18. C#: Đang đợi tất cả các chủ đề hoàn thành
- 19. Chủ đề Java chờ() => bị chặn?
- 20. Chờ mà không chặn chủ đề? - Làm sao?
- 21. Chờ cho chủ đề mà không đóng băng ứng dụng
- 22. Exception Handling trong trường hợp Thread.sleep và chờ đợi() phương pháp trong trường hợp Chủ đề
- 23. java swing công nhân chủ đề để chờ cho EDT
- 24. ruby chủ đề chương trình, ruby tương đương với java chờ đợi/thông báo/notifyAll
- 25. Gọi để chờ đợi Java Object() của phá vỡ chủ đề đồng bộ hóa
- 26. C++ 11 Chủ đề: Nhiều chủ đề đang chờ trên biến điều kiện
- 27. Java, Đừng chờ đợi một chuỗi hoàn thành
- 28. NSTimer có phải là chủ đề an toàn không?
- 29. Nhân viên nền có phải là chủ đề không? (C#)
- 30. Có phải Azure CloudTable là chủ đề an toàn không?