Page History
...
Stream Basic2 - 비동기/동기 처리를 혼합하기
비동기적으로( 동시에 여러개 처리가됩니다.) 처리할수 있는 영역 ( 소스+1 연산) 과
동기적으로 처리해야할부분의 ( *2연산 ) 경계를 구분하여 스트림를 처리를 시도해봅시다.
Code Block | ||||
---|---|---|---|---|
| ||||
protected void runBasic2(){ final Materializer materializer = ActorMaterializer.create(system); Source.range(1, 3) .map(x -> x + 1).async() .map(x -> x * 2) .to( Sink.foreach( result ->{ log.info("runBasic2 ==> {}", result ); })) .run(materializer); } |
Expand | ||
---|---|---|
| ||
2018-07-29 23:13:32,053 INFO - runBasic2 ==> 4 |
Basic1편에서 수행하는 것보다 더 복잡한것을 처리하지만, 실제 작성코드는 더 간결해졌습니다.
다음에 수행할 스트림을 분기하고 합하는 과정역시 코드의 복잡성이 크게 증가하지 않는다란 점에서
Akka에서 스트림처리를 위해 추상화한 수준이 신기방기합니다.