Rxjavaは、observeOnメソッドおよびsubscribeOnメソッドを使用して、観測可能およびサブスクライバのスレッドスケジュールを変更できます。 observeOnとsubscribeOnはliftメソッドを使用して新しいObservableを返します。
リフトメソッドは新しい観測値を作成します。クローンメソッドのように、新しいサブスクライバと新しいOnSubscribeを作成します。Rxjava - OnSubscribeでsubscribeOnのスケジュールを設定する理由
observeOn():新しいOnSubscribeは古いOnSubscribeに新しい加入者にメッセージを送信するよう通知し、新しい加入者はメッセージを受信するとそのスレッドスケジューラを変更します。この後、新しい加入者はメッセージを古い加入者。
subscribeOn():新しいOnSubscribeはスレッドスケジューラを最初に変更し、古いOnSubscribeに通知します。
私の質問は、新しいOnSubscriberから新しいSubscriberがメッセージを受け取ったときに、新しいOnSubscribeのスレッドスケジューラを最初に変更し、observeOn()がそのスレッドスケジューラを変更する理由です。なぜクリエイターがこのように設計したのですか?なぜsubscribeOnとobserveOnのスレッドスケジューラを変更する場所が違うのですか?事前に
おかげ
新しい加入者がobserveOnのように古いonSubscriberからメッセージを受け取った後にsubscribeOnをスケジューラに変更すると、どうなりますか?つまり、作成者がsubscriberOnを1回だけ設定できる理由ですが、subscribeOnが新しいサブスクライバのスレッドスケジューラを変更した場合、サブスクライバはオブザーバブルのようにスレッドスケジューラを何度も変更することができます。なぜRxjavaはこれをこのように設計していないのですか?サブスクライバのスレッドがスレッドを1回だけ変更するのはなぜですか? – JonsTank