2014-12-17 2 views
24

오늘 우리는 자바의 동시성에 대해 Akka과 같은 좋은 프레임 워크를 발견했으며, multithreading을 수행 할 때 RxJava과 같은 반응 형 프로그래밍 프레임 워크가 있다는 것을 발견했습니다. 그러나 나는 아직도 혼란 스럽다! 두 프레임 모두 Java Concurrency 프레임 워크보다 나은 이유는 무엇입니까?자바 동시성, Akka 및 RxJava의 차이점은 무엇입니까?

요즘 반응 형 프로그래밍은 성숙한 주제이며, 대부분의 언어는 Netflix과 같이 Functional Reactive Programing에 대한 지원을 제공하여 두 개 이상의 언어에 대해 Reactive programming에 관한 API를 제공합니다. Rxjava 그들은 내부적 또한 multithreading 프로그래밍 Actors을 사용하고 multithreadingAkka 유지를위한 액터 사용 java 사용되는 API 중 하나 scalaRxJava에 따르면된다.

따라서 AkkaReactive Programming 접근 방식의 차이점은 무엇이며 왜 그들이 Java Concurrency에서 우수할까요?

+2

불분명 함; 궁극적으로이 솔루션을 선택하는 것은 사용자의 요구에 달려 있습니다. – fge

+0

좋아,하지만 어떤 접근 방식은 좋은, 반응 프로그래밍, akka 또는 자바 동시성 무엇입니까? 그들 모두가'멀티 쓰레딩 '을 제공하기 때문이다. –

+0

일반적인 "좋은 접근"은 없습니다. 네가 잘 알고 있거나하고 싶은 것과 함께 가고 싶다. 개인적으로, JDK가 제공하는 것을 사용하기 때문에 내 요구에 충분히 적합합니다. – fge

답변

15

현재 Mathias Doenitz에 따르면 RxJava는 Akkas Reactive Streams 구현과 달리 역 압력을 가지고 있지 않습니다. 그러나 RxJava는 역압을 가하는 작업을하고있는 것 같습니다.

두 프레임 워크 모두 반응 형 스트리밍 SPI를 통해 상호 작용할 수 있습니다. 그러면 매우 비슷한 일을 할 수있게 될 것입니다. Mathias에 따르면 Akka 구현은 멀티 스레딩이 아니라 배우의 내부적 인 기반이 될 것입니다. 결과적으로 더 많은 실적을 올릴 수 있습니다.

마티아스가 네덜란드 스칼라 사용자 그룹에서 지난 주에 준 a talk입니다.

편집 : 나는 RxJava에서 배압을 교정했다. Eriks 링크를 따라 가면 역 압력의 의미를 읽을 수 있습니다. RxJava 압력 다시없는이 시점에서 마티아스 Doenitz에 따르면

+0

좋은 발표 주셔서 감사합니다. 정말 대단합니다. 자세한 내용은 –

16
+0

에게 감사드립니다. 그러나 반응 프로그래밍에서 평신도 단어에 '역압'이란 무엇입니까? –

+18

역압은 "워, 임마, 모든 것을 가지고 천천히, 나는 그걸 빨리 취할 수 없다." – Victor

+0

이제 시작됩니다 : https://github.com/ReactiveX/RxJava/wiki/Backpressure –