RxJava2 Flowable's concatMap and concatMapEager with observeOn has different behaviorWhat is the difference between concatMap and flatMap in RxJavaRxJava flatMapIterable with concatMapObservable.zip chooses different schedulers to subscribe on different callsUnexpected behavior with RxJava2 PublishSubjectRxandroid What's the difference between SubscribeOn and ObserveOnRxJava Chaining Observables with flatmap / concatmap & observeOn threadingRxJava2. Process different properties of the object from the listPlacement of observeOn gives me different behaviorInterrupt a single observable in concatMap

Does immunity to non magical damage negate sneak attack damage?

How to use multiple criteria for -find

Heuristic argument for the Riemann Hypothesis

Do artifacts count as creatures when they are put into a graveyard while March of the Machines is in play?

Calculus Books, preferably Soviet.

Do index funds really have double-digit percents annual return rates?

How do you manage to study and have a balance in your life at the same time?

What exactly is a softlock?

Solve this icositetragram

How do we know if a dialogue sounds unnatural without asking for feedback?

Why do many programmers abstain from using global variables?

Why not use futuristic pavise ballistic shields for protection?

Punishment in pacifist society

Do we know the problems the University of Manchester's Transistor Computer was intended to solve?

Ideal characterization of almost convergence

Would there be balance issues if I allowed opportunity attacks against any creature, not just hostile ones?

Why didn't Thatcher give Hong Kong to Taiwan?

How did Gollum know Sauron was gathering the Haradrim to make war?

How to check status of Wi-Fi adapter through command line?

How does Harry wear the invisibility cloak?

Lumix G7: Raw photos only in 1920x1440, no higher res available

In chocolate terminology, what is the name of thinly sliced leaf-shaped toppings made from hot, smooth chocolate, used to form flower petals?

Is mathematics truth?

Declaring 2 (or even multi-) dimensional std::arrays elegantly



RxJava2 Flowable's concatMap and concatMapEager with observeOn has different behavior


What is the difference between concatMap and flatMap in RxJavaRxJava flatMapIterable with concatMapObservable.zip chooses different schedulers to subscribe on different callsUnexpected behavior with RxJava2 PublishSubjectRxandroid What's the difference between SubscribeOn and ObserveOnRxJava Chaining Observables with flatmap / concatmap & observeOn threadingRxJava2. Process different properties of the object from the listPlacement of observeOn gives me different behaviorInterrupt a single observable in concatMap






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















Should publisher.observerOn(scheduler).concatMap(mapper, 1) and publisher.observerOn(scheduler).concatMapEager(mapper, 1, 1) have same behavior when concatMapEager using concurrency with 1?
I test concatMap and it may use different thread instead of scheduler from observeOn to call the mapper.



for example



Flowable.just(1, 2, 3, 4, 5)
.observeOn(Schedulers.io())
.concatMapEager(i ->
System.out.println("1>>>>trigger in thread:" + Thread.currentThread());
return Flowable.create(emitter ->
executorService.submit(() ->
try
Thread.sleep(3000L);
catch (InterruptedException ignore)

emitter.onNext("" + i);
emitter.onComplete();
);
, BackpressureStrategy.DROP);
, 1, 1)
.map(i -> "ok:" + i)
.blockingSubscribe();


this prints



1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]


but if change it to concatMap(mapper, 1), it prints



1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-1,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-2,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-3,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-4,5,main]


Should concatMap also use RxCachedThreadScheduler? or it's intentioned.










share|improve this question


























  • That doesn't look right with concatMap. Add hide() between observeOn and concatMap to see if that changes things.

    – akarnokd
    Mar 28 at 6:04











  • @akarnokd I tried and it's same that using pool-1-thread-x.

    – koji lin
    Mar 28 at 7:20






  • 1





    I see. Please try the other workarounds from this issue.

    – akarnokd
    Mar 28 at 8:43











  • And for workaround, I tried to use concatMapEager with concurrency 1 first.

    – koji lin
    Mar 29 at 1:01

















0















Should publisher.observerOn(scheduler).concatMap(mapper, 1) and publisher.observerOn(scheduler).concatMapEager(mapper, 1, 1) have same behavior when concatMapEager using concurrency with 1?
I test concatMap and it may use different thread instead of scheduler from observeOn to call the mapper.



for example



Flowable.just(1, 2, 3, 4, 5)
.observeOn(Schedulers.io())
.concatMapEager(i ->
System.out.println("1>>>>trigger in thread:" + Thread.currentThread());
return Flowable.create(emitter ->
executorService.submit(() ->
try
Thread.sleep(3000L);
catch (InterruptedException ignore)

emitter.onNext("" + i);
emitter.onComplete();
);
, BackpressureStrategy.DROP);
, 1, 1)
.map(i -> "ok:" + i)
.blockingSubscribe();


this prints



1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]


but if change it to concatMap(mapper, 1), it prints



1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-1,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-2,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-3,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-4,5,main]


Should concatMap also use RxCachedThreadScheduler? or it's intentioned.










share|improve this question


























  • That doesn't look right with concatMap. Add hide() between observeOn and concatMap to see if that changes things.

    – akarnokd
    Mar 28 at 6:04











  • @akarnokd I tried and it's same that using pool-1-thread-x.

    – koji lin
    Mar 28 at 7:20






  • 1





    I see. Please try the other workarounds from this issue.

    – akarnokd
    Mar 28 at 8:43











  • And for workaround, I tried to use concatMapEager with concurrency 1 first.

    – koji lin
    Mar 29 at 1:01













0












0








0








Should publisher.observerOn(scheduler).concatMap(mapper, 1) and publisher.observerOn(scheduler).concatMapEager(mapper, 1, 1) have same behavior when concatMapEager using concurrency with 1?
I test concatMap and it may use different thread instead of scheduler from observeOn to call the mapper.



for example



Flowable.just(1, 2, 3, 4, 5)
.observeOn(Schedulers.io())
.concatMapEager(i ->
System.out.println("1>>>>trigger in thread:" + Thread.currentThread());
return Flowable.create(emitter ->
executorService.submit(() ->
try
Thread.sleep(3000L);
catch (InterruptedException ignore)

emitter.onNext("" + i);
emitter.onComplete();
);
, BackpressureStrategy.DROP);
, 1, 1)
.map(i -> "ok:" + i)
.blockingSubscribe();


this prints



1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]


but if change it to concatMap(mapper, 1), it prints



1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-1,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-2,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-3,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-4,5,main]


Should concatMap also use RxCachedThreadScheduler? or it's intentioned.










share|improve this question
















Should publisher.observerOn(scheduler).concatMap(mapper, 1) and publisher.observerOn(scheduler).concatMapEager(mapper, 1, 1) have same behavior when concatMapEager using concurrency with 1?
I test concatMap and it may use different thread instead of scheduler from observeOn to call the mapper.



for example



Flowable.just(1, 2, 3, 4, 5)
.observeOn(Schedulers.io())
.concatMapEager(i ->
System.out.println("1>>>>trigger in thread:" + Thread.currentThread());
return Flowable.create(emitter ->
executorService.submit(() ->
try
Thread.sleep(3000L);
catch (InterruptedException ignore)

emitter.onNext("" + i);
emitter.onComplete();
);
, BackpressureStrategy.DROP);
, 1, 1)
.map(i -> "ok:" + i)
.blockingSubscribe();


this prints



1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]


but if change it to concatMap(mapper, 1), it prints



1>>>>trigger in thread:Thread[RxCachedThreadScheduler-1,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-1,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-2,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-3,5,main]
1>>>>trigger in thread:Thread[pool-1-thread-4,5,main]


Should concatMap also use RxCachedThreadScheduler? or it's intentioned.







rx-java rx-java2 concatmap






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 14 at 7:26









Filip

5,0773 gold badges17 silver badges33 bronze badges




5,0773 gold badges17 silver badges33 bronze badges










asked Mar 28 at 2:05









koji linkoji lin

3051 gold badge4 silver badges9 bronze badges




3051 gold badge4 silver badges9 bronze badges















  • That doesn't look right with concatMap. Add hide() between observeOn and concatMap to see if that changes things.

    – akarnokd
    Mar 28 at 6:04











  • @akarnokd I tried and it's same that using pool-1-thread-x.

    – koji lin
    Mar 28 at 7:20






  • 1





    I see. Please try the other workarounds from this issue.

    – akarnokd
    Mar 28 at 8:43











  • And for workaround, I tried to use concatMapEager with concurrency 1 first.

    – koji lin
    Mar 29 at 1:01

















  • That doesn't look right with concatMap. Add hide() between observeOn and concatMap to see if that changes things.

    – akarnokd
    Mar 28 at 6:04











  • @akarnokd I tried and it's same that using pool-1-thread-x.

    – koji lin
    Mar 28 at 7:20






  • 1





    I see. Please try the other workarounds from this issue.

    – akarnokd
    Mar 28 at 8:43











  • And for workaround, I tried to use concatMapEager with concurrency 1 first.

    – koji lin
    Mar 29 at 1:01
















That doesn't look right with concatMap. Add hide() between observeOn and concatMap to see if that changes things.

– akarnokd
Mar 28 at 6:04





That doesn't look right with concatMap. Add hide() between observeOn and concatMap to see if that changes things.

– akarnokd
Mar 28 at 6:04













@akarnokd I tried and it's same that using pool-1-thread-x.

– koji lin
Mar 28 at 7:20





@akarnokd I tried and it's same that using pool-1-thread-x.

– koji lin
Mar 28 at 7:20




1




1





I see. Please try the other workarounds from this issue.

– akarnokd
Mar 28 at 8:43





I see. Please try the other workarounds from this issue.

– akarnokd
Mar 28 at 8:43













And for workaround, I tried to use concatMapEager with concurrency 1 first.

– koji lin
Mar 29 at 1:01





And for workaround, I tried to use concatMapEager with concurrency 1 first.

– koji lin
Mar 29 at 1:01












0






active

oldest

votes










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55389131%2frxjava2-flowables-concatmap-and-concatmapeager-with-observeon-has-different-beh%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes




Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.







Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.



















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid …


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55389131%2frxjava2-flowables-concatmap-and-concatmapeager-with-observeon-has-different-beh%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to preserve electronics (computers, tablets and phones) for hundreds of years Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) The network's official Twitter account is up and running again. What content…How might modern humans leave a message for 50,000 years?How would an aquatic race develop computers?How do we make computers care for human life?Keeping supplies for 1000 yearsWhat will cell phones become in 100 years?What body armor protects against a laser?Could a society attain 1800s technology if limited to using copper and bronze?Electricity power (magic) and electronicsScavenging metal resources in post-apocalypse after 100 yearsWhy would precursors create devices that can survive and still work after hundreds of years?

155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해

Convert JSON to MapSimplest way to convert a string representing JSON array into Java array List of key value pairsHow to take String JSON values into HashMapConvert a JSON String to a HashMapCreating BSON object from JSON stringJSONObject - How to get a value ?Better Map ConstructorReading JSON from Url javaUpdate columns if input values are not null otherwise ignore and keep the existing values of column in databaseHow to store object represented as Json string into Couchbase Lite?Go JSON into MapHow do I efficiently iterate over each entry in a Java Map?Sort a Map<Key, Value> by valuesHow to round a number to n decimal places in JavaCan comments be used in JSON?How do I read / convert an InputStream into a String in Java?How can I pretty-print JSON in a shell script?What is the correct JSON content type?How can I deserialize JSON to a simple Dictionary<string,string> in ASP.NET?Why does Google prepend while(1); to their JSON responses?Parse JSON in JavaScript?