Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Export of my JShell session from the Exploring reactive programming in Java talk at Devoxx Ukraine 2019.
Thread t = new Thread(() -> System.out.println("hello guadalajara"))
t.start()
ExecutorService e = Executors.newSingleThreadExecutor()
Future<String> f = e.submit(() -> "hello guadalajara")
f
f.get()
ExecutorService e = ForkJoinPool.commonPool()
Future<String> f = e.submit(() -> "hello guadalajara")
f.get()
CompletableFuture<String> cf = new CompletableFuture<String>()
cf.complete("done")
cf.get()
CompletableFuture<String> cf = new CompletableFuture<String>()
cf.get()
cf.completeExceptionally(new IllegalStateException())
cf.get()
CompletableFuture.supplyAsync(() -> "hello")
.thenApplyAsync(x -> x + " guadalajara")
.thenAcceptAsync(System.out::println)
/l
CompletableFuture<String> cf = new CompletableFuture<String>()
cf.completeOnTimeout("timed out", 5, TimeUnit.SECONDS)
cf.get()
CompletableFuture<String> cf = new CompletableFuture<String>()
cf.orTimeout(5, TimeUnit.SECONDS)
cf.get()
CompletableFuture<String> cf = new CompletableFuture<String>()
CompletableFuture<String> copy = cf.copy()
cf.complete("done")
cf
copy
copy.get()
CompletableFuture<String> cf = new CompletableFuture<String>()
CompletableFuture<String> copy = cf.copy()
copy.complete("done")
copy
cf
class SimpleSubscriber implements Subscriber<String> {
}
class SimpleSubscriber implements Subscriber<String> {
public void onSubscribe(Subscription sub) {}
public void onNext(String item) {}
public void onError(Throwable t) {}
public void onComplete() {}
}
/ed SimpleSubscriber
SimpleSubscriber sub = new SimpleSubscriber()
SubmissionPublisher<String> pub = new SubmissionPublisher<String>()
pub.subscribe(sub)
pub.getSubscribers()
pub.submit("hello guadalajara")
pub.close()
pub.submit("hello guadalajara")
HttpHandler handler = he -> {
String body = "hello guadalajara";
he.sendResponseHeaders(200, body.length());
try (OutputStream os = he.getResponseBody()){
os.write(body.getBytes());
}
}
/l handler
HttpServer hs = HttpServer.create(new InetSocketAddress(8000), 0)
hs.createContext("/hello", handler)
hs.start()
HttpClient hc = HttpClient.newHttpClient()
hc.version()
HttpRequest request = HttpRequest.newBuilder().uri(URI.create("http://localhost:8000/hello")).GET().build()
HttpResponse<String> response = hc.send(request, BodyHandlers.ofString())
response.statusCode()
response.body()
CompletableFuture<HttpResponse<String>> response = hc.sendAsync(request, BodyHandlers.ofString())
response.get().body()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment