Czy podczas korzystania z kontraktów futures Scala zoptymalizowane zostaną połączenia zwrotne z tym samym kontekstem wykonania w połączeniach synchronicznych?

Nowa Future w Scala 2.10 używa kontekstu wykonania dla każdej operacji, w której akcja jest wywoływana asynchronicznie (w tymmap, filteritp.) Czy to oznacza, że ​​każde działanie będzie zawsze wywoływane indywidualnie w kontekście wykonania, czy też jest możliwe, że ten krok zostanie zoptymalizowany przy łączeniu wielu transformacji / filtrów przy użyciu tego samego kontekstu wykonania?

To znaczy. jeśli robiszf.map(...).filter(...).map(...), wszystkie z tym samym kontekstem wykonania, to wywołanieexecute() raz (ponieważ jest wystarczająco sprytny, aby skomponować synchroniczną funkcję z powyższego), czy trzy razy?

Jeśli przyszłość scala nie przeprowadzi powyższej optymalizacji, czy istnieje alternatywna struktura lepiej dostosowana do kompozycji o długich łańcuchach, która robi powyższe?

questionAnswers(1)

yourAnswerToTheQuestion