Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
JShell transcript from the Exploring reactive programming in Java session at VoxxedDays Bristol 2018.
Thread t = new Thread(() -> System.out.println("hello bristol"))
t.start()
ExecutorService e = Executors.newSingleThreadExecutor()
Future<String> f = e.submit(() -> "hello bristol")
f
f.get()
ExecutorService e = ForkJoinPool.commonPool()
Future<String> f = e.submit(() -> "hello bristol")
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 + " bristol").thenAccept(System.out::println)
CompletableFuture.supplyAsync(() -> "hello").thenCombineAsync(CompletableFuture.supplyAsync(x -> x + " bristol"), (x, y) -> x + y).thenAccept(System.out::println)
CompletableFuture.supplyAsync(() -> "hello").thenCombineAsync(CompletableFuture.supplyAsync(() + " bristol"), (x, y) -> x + y).thenAccept(System.out::println)
CompletableFuture.supplyAsync(() -> "hello").thenCombineAsync(CompletableFuture.supplyAsync(() -> " bristol"), (x, y) -> x + y).thenAccept(System.out::println)
CompletableFuture.supplyAsync(() -> "hello").thenCombineAsync(CompletableFuture.supplyAsync(() -> " bristol"), (x, y) -> x + y).exceptionally(t -> "We have an error: " + t.getMessage()).thenAccept(System.out::println)
CompletableFuture.supplyAsync(() -> "hello").thenCombineAsync(CompletableFuture.failedFuture(new IllegalStateException()), (x, y) -> x + y).exceptionally(t -> "We have an error: " + t.getMessage()).thenAccept(System.out::println)
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")
cd
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> {
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")
pub.submit("hello")
pub.submit("hello")
pub.submit("hello")
pub.close()
HttpHandler handler = he -> {
String body = "hello bristol";
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