我的代码如下:
public class SequenceCreator {
public Consumer<List<Integer>> consumer;
public Flux<Integer> createNumberSequence() {
return Flux.push(sink -> consumer = items -> items.forEach(sink::next));
}
public static void main(String[] args) throws InterruptedException {
SequenceCreator sequenceCreator = new SequenceCreator();
List<Integer> sequence1 = Lists.newArrayList(1,2,3,4,5);
List<Integer> sequence2 = Lists.newArrayList(6,7,8,9,10);
Thread producingThread1 = new Thread(
() -> sequenceCreator.consumer.accept(sequence1));
Thread producingThread2 = new Thread(
() -> sequenceCreator.consumer.accept(sequence2));
sequenceCreator.createNumberSequence().subscribe(System.out::println);
producingThread1.start();
producingThread2.start();
while (true) {
Thread.sleep(1000);
}
}
}
输出为
1 2 3 4 5 7 8 9 10
我不知道为什么数字6没有输出这是多线程的原因吗?
我不知道为什么数字6没有输出这是多线程的原因吗?
是的,几乎可以肯定。看一下Javadoc forFlux。推送:
以编程方式创建Flux,该Flux能够通过FLuxSink API从单线程生产者发出多个元素。有关支持多线程的替代方案,请参阅创建(消费者)。
您没有使用单线程生产者(违反记录的要求),因此在这个场景中行为基本上是未定义的。您需要切换到通量。按照文档的建议创建,因为您使用多个线程来发布。
我有5,000,000插入查询在文件中。我想从文件中读取它们,并用java驱动程序和执行Async方法写入cassandra,在循环语句中,如以下代码: 我的表格定义是: 但运行程序后,表中的行数为2569725 我测试了10多次,每次选择计数(*)的结果都在2400,00到2600000之间
我们为Spring网关编写了一个自定义谓词工厂来路由请求。我们正在解析XML请求的主体,然后根据主体中存在的特定方法派生路由。在此过程中,我们编写了以下代码来创建ServerRquest。 使用较旧版本的完美地运行此解决方案。但使用最新版本的我得到以下异常。网关应用程序正常启动,没有任何错误。 有没有其他人也有同样的问题,知道如何解决这个问题?
我正在用SQS和JavaSDK发送和接收消息。几乎所有的消息都工作正常,但是其中一些丢失了,我不明白为什么。这是发送消息的代码: 以及接收代码(在循环中运行): 问题是,我能够接收到一些消息,但有些消息不是(总是相同类型的数据)。发送和接收的代码对于所有消息都是相同的。应用程序日志: 正在发送消息:{QueueUrl:https://sqs.us-east-1.amazonaws.com/0000
我是WebFlux/Reactor的新手,很难考虑如何编写这段代码。基本上,我有一个流量,它有一个嵌套的List foo和一个mono bar,我只想在foo中返回bar中包含的项。 上面代码块的问题是上的,我不想阻止。不确定如何将其更改为无阻塞,但仍然检查bar是否包含烫发项。
问题内容: 我已按照以下指示在Google App Engine应用程序中配置了JSF 2.1: https://sites.google.com/a/wildstartech.com/adventures-in-java/Java-Platform- Enterprise-Edition/JavaServer-Faces/javaserver-faces-21/configuring- java
问题内容: 我有一个博客。在单个帖子页面上,我想显示指向上一个帖子的链接,如果有一个链接,则在底部发布下一个帖子。该链接应为特定帖子的标题。 我如何用猫鼬最简单的方式做到这一点? 我当前的控制器如下所示: 架构如下所示: 问题答案: 因此,假设您拥有这样的架构: 我想_id是mongo ObjectId,所以我们包含发布日期,我可以对其进行排序 让我们考虑一下,我已经打开了ID为的当前帖子(而不是