ZVVQ代理分享网

如何利用Java框架进行分布式并发编程?(java分布

作者:zvvq博客网
导读借助 java 框架可有效进行分布式并发编程:spring 提供了 threadpooltaskexecutor、mdp 和 remote invocation framework,支持并行任务处理、消息异步处理和远程方法调用。akka 的 actor system 概念允许创

依靠 java 架构可有效开展分布式并发编程:spring 带来了 threadpooltaskexecutor、mdp 和 remote invocation framework,适用并行任务解决、信息异步处理和远程方法调用。akka 的 actor system 定义容许建立并发实体,根据消息传递体制融洽逻辑。

运用 Java 架构开展分布式并发编程

Java 架构如 Spring 和 Akka 提供了强大的特点,有利于开发分布式、并发的应用程序。本文介绍了怎样使用这个架构高效地完成分布式并发编程。

应用 Spring 开展分布式并发编程

Spring 提供了多种用以分布式并发编程的部件:

Spring ThreadPoolTaskExecutor:用以创建和管理线程池,适合于并行计算任务。 Spring Message Driven POJO (MDP):容许应用软件异步处理信息,非常适合使用消息队列开展分布式处理。 Spring Remote Invocation Framework:适用在不同 JVM 过程中间远程调用方式,完成并发的分布式服务。实战案例 :应用 ThreadPoolTaskExecutor 并行化任务

@Configuration

publicclassAsyncConfiguration{

@Bean

publicExecutortaskExecutor(){

ThreadPoolTaskExecutorexecutor=newThreadPoolTaskExecutor();

executor.setCorePoolSize(5);

executor.setMaxPoolSize(10);

executor.setQueueCapacity(100);

returnexecutor;

}

@Bean

publicAsyncServiceasyncService(){

returnnewAsyncServiceImpl();

}

}

publicinterfaceAsyncService{

voiddoAsyncWork(Stringinput);

}

publicclassAsyncServiceImplimplementsAsyncService{

@Override

publicvoiddoAsyncWork(Stringinput){

//实行耗时的操作

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

// 导出处置结果

System.out.println("Processed input: " + input);

}

}

应用 Akka ActorSystem开展并发编程

Akka 架构带来了 Actor System 定义,每个 Actor 表明一个并发实体,能够与其它 Actor 互换信息并实施自身的思路。

实战案例 :应用 Actor System 构建并行WordCounter

publicclassWordCounterActorextendsAbstractActor{

privateintcount=0;

@Override

publicReceivecreateReceive(){

returnreceiveBuilder()

.match(String.class,this::processWord)

.build();

}

privatevoidprocessWord(Stringword){

count++;

}

@Override

publicvoidpreStart(){

// Actor 运作时的思路

}

@Override

publicvoidpostStop(){

// Actor 终止时的逻辑

}

}

public class WordCounterMain {

public static void main(String[] args) {

ActorSystem system = ActorSystem.create("word-counting-system");

ActorRef actorRef = system.actorOf(Props.create(WordCounterActor.class));

// 推送单词给 Actor 解决

actorRef.tell("word1", ActorRef.noSender());

actorRef.tell("word2", ActorRef.noSender());

// 关掉 Actor System

system.terminate();

}

}

以上就是如何运用Java架构开展分布式并发编程?的详细内容,大量请关注其他类似文章!