2014-12-17 15 views
24

Hôm nay tôi thấy rằng, đối với đồng thời trong java chúng tôi có khung tốt như Akka và tôi cũng thấy rằng, có một khung lập trình phản ứng như RxJava để thực hiện multithreading trong ứng dụng. Nhưng tôi vẫn còn bối rối! Tại sao cả hai đều tốt hơn khung công tác Java Concurrency?Sự khác nhau giữa Java Concurrency, Akka và RxJava?

Lập trình phản ứng ngày nay là chủ đề trưởng thành và hầu hết các ngôn ngữ đều hỗ trợ Functional Reactive Programing như Netflix cung cấp các API liên quan đến Reactive programming cho nhiều ngôn ngữ. Rxjava là một trong api được sử dụng cho java, scala v.v. Theo RxJava, chúng sử dụng nội bộ để duy trì multithreadingAkka cũng sử dụng Actors để lập trình multithreading.

Vì vậy, sự khác nhau giữa phương pháp AkkaReactive Programming là gì và tại sao chúng tốt từ Java Concurrency?

+2

Không rõ ràng; và cuối cùng, việc chọn giải pháp này hoặc giải pháp đó tùy thuộc vào nhu cầu của bạn. – fge

+0

ok, Nhưng cách tiếp cận nào là tốt, lập trình phản ứng, akka hoặc đồng thời java? bởi vì tất cả chúng đều cung cấp 'đa luồng'. –

+0

Không có "cách tiếp cận tốt" chung; chỉ cần đi với những gì bạn đã quen thuộc và/hoặc muốn làm. Cá nhân, tôi chỉ sử dụng những gì JDK cung cấp vì nó đủ tốt cho nhu cầu của tôi, và đó là về nó. – fge

Trả lời

15

Theo Mathias Doenitz tại thời điểm này, RxJava không có áp lực ngược lại, không giống như việc thực hiện các luồng phản ứng của Akkas. Nhưng RxJava dường như đang làm việc để tăng thêm áp lực.

Cả hai khuôn khổ sẽ có thể tương tác thông qua spi trực tuyến phản ứng. Vì vậy, bạn sẽ có thể làm những việc rất giống nhau. Theo Mathias sự khác biệt sẽ là việc thực hiện Akka được dựa trên nội bộ trên các diễn viên, không phải trên đa luồng. Và kết quả sẽ có hiệu quả hơn.

Nguồn của tôi cho thông tin này là a talk mà Mathias đã cung cấp vào tuần trước tại nhóm người dùng Dutch Scala.

chỉnh sửa: Tôi đứng hỗ trợ áp lực lùi được sửa lại trong RxJava. Nếu bạn làm theo liên kết Eriks bạn có thể đọc những gì áp lực trở lại có nghĩa là.

+0

Cảm ơn bạn đã trình bày tốt. nó thực sự tuyệt vời. –

16

Theo Mathias Doenitz vào thời điểm này trong thời gian RxJava không có áp lực trở lại

Đó là không chính xác; https://github.com/ReactiveX/RxJava/wiki/Backpressure

+0

cảm ơn, để biết thêm thông tin. Nhưng trong lập trình phản ứng, 'áp lực ngược' là gì trong những lời nói dối? –

+18

Áp suất ngược lại là "whoa, dude, slow down with all that, Tôi không thể mang nó nhanh đến thế." – Victor

+0

Hiện tại: https://github.com/ReactiveX/RxJava/wiki/Backpressure –

Các vấn đề liên quan