FooServiceGrpc.FooServiceFutureStub futureStub =
	FooServiceGrpc.newFutureStub(channel);
 
Foo foo = Foo.newBuilder().build();
ListenableFuture<Bar> future = futureStub.ding(foo);
 
future.addListener(
	new Runnable() {
		@Override
		public void run() {
			// es gab eine Aktion des Servers
			System.out.println("done? " + future.isDone());
			System.out.println("canceled? " + future.isCancelled());
			if(future.isDone()) {
				try {
					Bar result = future.get();
				} catch (InterruptedException e) {
					// Fehlerbehandlung
				} catch (ExecutionException e) {
					// Fehlerbehandlung, siehe spätere Folie(n)
				}
			}
		}
	},
	executor
);