Java multi-threading and asynchronous programming framework, flexible IO model with asynchronous operations