Language and Virtual Machine Support for Efficient Fine-Grained Futures in Java
In this work, the authors investigate the implementation of futures in Java J2SE v5.0. Java 5.0 provides an interface-based implementation of futures that enables users to encapsulate potentially asynchronous computation and to define their own execution engines for futures. Although this methodology decouples thread scheduling from application logic, for applications with fine-grained parallelism, this model imposes an undue burden on the average users and introduces significant performance overhead. To address these issues, they investigate the use of lazy futures and offer an alternative implementation to the Java 5.0 approach.