Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Stream Basic2 - 비동기/동기 처리를 혼합하기

비동기적으로( 동시에 여러개 처리가됩니다.) 처리할수 있는 영역 ( 소스+1 연산) 과

동기적으로 처리해야할부분의 ( *2연산 ) 경계를 구분하여 스트림를 처리를 시도해봅시다.


Code Block
languagejava
themeEmacs
  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
titleResult

2018-07-29 23:13:32,053 INFO - runBasic2 ==> 4
2018-07-29 23:13:32,054 INFO - runBasic2 ==> 6
2018-07-29 23:13:32,055 INFO - runBasic2 ==> 8

Basic1편에서 수행하는 것보다 더 복잡한것을 처리하지만, 실제 작성코드는 더 간결해졌습니다.

다음에 수행할 스트림을 분기하고 합하는 과정역시 코드의 복잡성이 크게 증가하지 않는다란 점에서

Akka에서 스트림처리를 위해 추상화한 수준이 신기방기합니다. 


Stream Basic 3 - 스트림을 분기하고 합하기

Image Added