依靠 java 架构可有效开展分布式并发编程:spring 带来了 threadpooltaskexecutor、mdp 和 remote invocation framework,适用并行任务解决、信息异步处理和远程方法调用。akka 的 actor system 定义容许建立并发实体,根据消息传递体制融洽逻辑。 zvvq.cn
内容来自zvvq
运用 Java 架构开展分布式并发编程
Java 架构如 Spring 和 Akka 提供了强大的特点,有利于开发分布式、并发的应用程序。本文介绍了怎样使用这个架构高效地完成分布式并发编程。 内容来自zvvq
应用 Spring 开展分布式并发编程 zvvq好,好zvvq
Spring 提供了多种用以分布式并发编程的部件:
Spring ThreadPoolTaskExecutor:用以创建和管理线程池,适合于并行计算任务。 Spring Message Driven POJO (MDP):容许应用软件异步处理信息,非常适合使用消息队列开展分布式处理。 Spring Remote Invocation Framework:适用在不同 JVM 过程中间远程调用方式,完成并发的分布式服务。实战案例:应用 ThreadPoolTaskExecutor 并行化任务 zvvq
@Configuration 内容来自zvvq,别采集哟
publicclassAsyncConfiguration{ 本文来自zvvq
@Bean
copyright zvvq
publicExecutortaskExecutor(){
ThreadPoolTaskExecutorexecutor=newThreadPoolTaskExecutor();
内容来自zvvq,别采集哟
executor.setCorePoolSize(5); 内容来自zvvq
executor.setMaxPoolSize(10); 内容来自samhan666
executor.setQueueCapacity(100); 内容来自zvvq
returnexecutor;
} copyright zvvq
@Bean 内容来自samhan
publicAsyncServiceasyncService(){ zvvq
returnnewAsyncServiceImpl();
} 内容来自zvvq
} zvvq.cn
publicinterfaceAsyncService{ zvvq.cn
voiddoAsyncWork(Stringinput);
zvvq
}
zvvq好,好zvvq
publicclassAsyncServiceImplimplementsAsyncService{ zvvq.cn
@Override
publicvoiddoAsyncWork(Stringinput){ 本文来自zvvq
//实行耗时的操作
zvvq
try {
Thread.sleep(500); zvvq好,好zvvq
} catch (InterruptedException e) {
e.printStackTrace();
内容来自zvvq,别采集哟
}
zvvq.cn
// 导出处置结果 内容来自zvvq
System.out.println("Processed input: " + input); 内容来自zvvq
}
内容来自zvvq,别采集哟
} copyright zvvq
应用 Akka ActorSystem开展并发编程
Akka 架构带来了 Actor System 定义,每个 Actor 表明一个并发实体,能够与其它 Actor 互换信息并实施自身的思路。 内容来自samhan666
实战案例:应用 Actor System 构建并行WordCounter 内容来自samhan666
publicclassWordCounterActorextendsAbstractActor{
内容来自samhan
privateintcount=0; 内容来自samhan666
@Override 本文来自zvvq
publicReceivecreateReceive(){ 内容来自samhan666
returnreceiveBuilder() 内容来自zvvq,别采集哟
.match(String.class,this::processWord) 内容来自zvvq,别采集哟
.build(); 本文来自zvvq
}
privatevoidprocessWord(Stringword){
count++;
内容来自samhan666
}
@Override
publicvoidpreStart(){ 内容来自zvvq
// Actor 运作时的思路
内容来自zvvq,别采集哟
} 内容来自samhan666
@Override zvvq好,好zvvq
publicvoidpostStop(){
// Actor 终止时的逻辑 内容来自zvvq
}
本文来自zvvq
}
public class WordCounterMain { zvvq.cn
public static void main(String[] args) {
本文来自zvvq
ActorSystem system = ActorSystem.create("word-counting-system"); copyright zvvq
ActorRef actorRef = system.actorOf(Props.create(WordCounterActor.class)); copyright zvvq
// 推送单词给 Actor 解决 内容来自zvvq
actorRef.tell("word1", ActorRef.noSender()); 本文来自zvvq
actorRef.tell("word2", ActorRef.noSender()); 内容来自samhan666
// 关掉 Actor System 内容来自zvvq,别采集哟
system.terminate(); zvvq好,好zvvq
} 内容来自samhan666
}
内容来自samhan
以上就是如何运用Java架构开展分布式并发编程?的详细内容,大量请关注其他类似文章!