第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

合并熱通量源

合并熱通量源

湖上湖 2022-09-01 17:24:03
在Spring Boot 2 with Reactor中,我試圖合并兩個(gè)熱源。但是,似乎唯一一個(gè)報(bào)告了 中的兩個(gè)參數(shù)中的第一個(gè)。我如何識(shí)別第二個(gè).FluxmergeFluxmergemergeFlux在下面的示例中,in 甚至不會(huì)打印 when 是第一個(gè)參數(shù)。如果我做第一個(gè),那么不打印。System.errB-2outgoing1aoutgoing2A-2以下是完整的示例;package com.example.demo;import java.time.Duration;import java.util.concurrent.BlockingQueue;import java.util.concurrent.LinkedBlockingQueue;import reactor.core.publisher.Flux;import reactor.core.scheduler.Schedulers;public class Weather {String city;Integer temperature;public Weather(String city, Integer temperature) {    this.city = city;    this.temperature = temperature;}@Overridepublic String toString() {    return "Weather [city=" + city + ", temperature=" + temperature + "]";}public static void main(String[] args) {    BlockingQueue<Weather> queue = new LinkedBlockingQueue<>();    BlockingQueue<Weather> queue2 = new LinkedBlockingQueue<>();    // Assume Spring @Repository "A-1"    new Thread(() -> {        for (int d = 1; d < 1000; d += 1) {            for (String s: new String[] {"LDN", "NYC", "PAR", "ZUR"}) {                queue.add(new Weather(s, d));                try { Thread.sleep(250); } catch (InterruptedException e) {}            }        }    }).start();     // Assume Spring @Repository "B-1"    new Thread(() -> {        for (int d = 1; d < 1000; d += 1) {            for (String s: new String[] {"MOS", "TLV"}) {                queue2.add(new Weather(s, d));                try { Thread.sleep(1000); } catch (InterruptedException e) {}            }        }    }).start();    // Assume Spring @Service "A-2" = real-time LDN, NYC, PAR, ZUR    Flux<Weather> outgoing1 = Flux.<Weather>create(        sink -> {            for (int i = 0; i < 1000; i++) {                try {                    sink.next(queue.take());                    System.err.println("1 " + queue.size());                } catch (InterruptedException e) {                    e.printStackTrace();                }            }            sink.complete();        }    )
查看完整描述

1 回答

?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊

這里有一些事情在起作用。

  1. 請(qǐng)注意 .merge 運(yùn)算符的以下建議...

請(qǐng)注意,合并是為使用異步源或有限源而定制的。當(dāng)處理尚未在專用計(jì)劃程序上發(fā)布的無(wú)限源時(shí),您必須將該源隔離在其自己的計(jì)劃程序中,否則合并會(huì)嘗試在訂閱另一個(gè)源之前將其排出。

  1. 您的出站助焊劑使用 ,但這只影響在運(yùn)算符之后鏈接的運(yùn)算符。即,它不會(huì)影響之前的任何內(nèi)容。具體來(lái)說(shuō),它不會(huì)影響 lambda 中的代碼傳遞到執(zhí)行的線程。如果您在每個(gè)出站通量之前添加,您可以看到這一點(diǎn)。.publishOn.publishOn.publishOnFlux.create.log().publishOn

  2. 您的 lambda 已傳遞給調(diào)用阻塞方法 ()。Flux.createqueue.take

由于您在線程中調(diào)用合并的 Flux,因此您的 lambda 將傳遞給線程中的執(zhí)行,并阻止它。subscribe(...)mainFlux.createmain

最簡(jiǎn)單的解決方法是使用而不是使 lambda 中的代碼傳遞到不同的線程(不是 )上運(yùn)行。這將防止線程阻塞,并允許來(lái)自兩個(gè)出站流的合并輸出交錯(cuò)。.subscribeOn.publishOnFlux.createmainmain


查看完整回答
反對(duì) 回復(fù) 2022-09-01
  • 1 回答
  • 0 關(guān)注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)