您好,欢迎访问一九零五行业门户网

在Java 9中,我们如何实现SubmissionPublisher类?

从 java 9 开始,我们可以通过引入四个核心接口来创建reactive streams:publisher、subscriber、subscription、processor 和一个具体类:实现 publisher 的 submissionpublisher界面。每个界面都扮演着不同的角色,对应于响应式流的原则。我们可以使用 submissionpublisher 类的 submit() 方法将提供的项目发布给每个订阅者。
语法
public class submissionpublisher<t> extends object implements flow.publisher<t>, autocloseable
在下面的示例中,我们可以实现 submissionpublisher 类
示例import java.util.concurrent.flow.subscriber;import java.util.concurrent.flow.subscription;import java.util.concurrent.submissionpublisher;class mysubscriber<t> implements subscriber<t> { private subscription subscription; private string name; public mysubscriber(string name) { this.name = name; } @override public void oncomplete() { system.out.println(name + ": oncomplete"); } @override public void onerror(throwable t) { system.out.println(name + ": onerror"); t.printstacktrace(); } @override public void onnext(t msg) { system.out.println(name + ": " + msg.tostring() + " received in onnext"); subscription.request(1); } @override public void onsubscribe(subscription subscription) { system.out.println(name + ": onsubscribe"); this.subscription = subscription; subscription.request(1); }}// main classpublic class flowtest { public static void main(string args[]) { submissionpublisher<string> publisher = new submissionpublisher<>(); mysubscriber<string> subscriber = new mysubscriber<>("mine"); mysubscriber<string> subscriberyours = new mysubscriber<>("yours"); mysubscriber<string> subscriberhis = new mysubscriber<>("his"); mysubscriber<string> subscriberhers = new mysubscriber<>("her"); publisher.subscribe(subscriber); publisher.subscribe(subscriberyours); publisher.subscribe(subscriberhis); publisher.subscribe(subscriberhers); publisher.submit("one"); publisher.submit("two"); publisher.submit("three"); publisher.submit("four"); publisher.submit("five"); try { thread.sleep(1000); } catch(interruptedexception e) { e.printstacktrace(); } publisher.close(); }}
输出yours: onsubscribehis: onsubscribemine: onsubscribehis: one received in onnextyours: one received in onnextmine: one received in onnextyours: two received in onnexthis: two received in onnextyours: three received in onnextmine: two received in onnextyours: four received in onnexthis: three received in onnextyours: five received in onnextmine: three received in onnexther: onsubscribehis: four received in onnexther: one received in onnextmine: four received in onnexther: two received in onnexthis: five received in onnexther: three received in onnextmine: five received in onnexther: four received in onnexther: five received in onnextyours: oncompletehis: oncompletemine: oncompleteher: oncomplete
以上就是在java 9中,我们如何实现submissionpublisher类?的详细内容。
其它类似信息

推荐信息