Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Asynchronous Functional APIs in Java

DZone's Guide to

Asynchronous Functional APIs in Java

· Java Zone
Free Resource

The single app analytics solutions to take your web and mobile apps to the next level.  Try today!  Brought to you in partnership with CA Technologies

The major limitation of java.util.concurrent.Future class is lack of a good way to listen to future completion asynchronously. Even though Java futures are asynchronous in nature and meant to eliminate synchronous waits when not needed, the only way to get a future result is to synchronously wait for future completion. In many cases this defeats the purpose and Java futures cannot be used.

To avoid this problem we at GridGain created our own future which allows for asynchronous listening for future subscription. In addition to that we have also resolved the inconveniences of error handling and added 'duration()'method to tell users how long the future took to execute. Here is how you can add a listener to get notified, say for completion of put(..) operation on distributed cache.

...
GridCache<Integer, String> cache = grid.cache();

// Asynchronously put a value into cache.
GridFuture<String> fut = cache.putAsync(1, "1");

// Pass in a closure which will be called whenever future completes.
fut.listenAsync(new GridInClosureX<GridFuture<String>>() {
public void applyx(GridFuture<String> fut) throws GridException {
V previousValue = fut.get();

long duration = fut.duration();

System.out.println("Finished cache put operation [prev=" +
previousValue + ", duration= + duration + "ms]");
}
});
...

 GridFuture is used for all asynchronous operations in GridGain, including both, compute and data grid features. Hope you find it useful.

From http://gridgain.blogspot.com/2011/04/asynchronous-functional-apis-in-java.html

CA App Experience Analytics, a whole new level of visibility. Learn more. Brought to you in partnership with CA Technologies.

Topics:

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}