java - 在 IBM liberty 服务器中实现并发

标签 java server websphere websphere-liberty

我正在 IBM-liberty 服务器上工作,需要实现 5 个线程的并发。我浏览了 IBM 官方网站上提供的一些链接。但无法理解应该如何配置 server.xml,以便每当我将 Java 应用程序部署到 liberty server 5 线程上时都会同时运行我的 Java 组件。谁能帮我提供一个真正在这方面苦苦挣扎的坚实例子。以下是我的代码库,

我已经修改了我的 server.xml,进行了以下更改,

<featureManager>
      <feature>concurrent-1.0</feature>
    </featureManager>

    <managedScheduledExecutorService jndiName="concurrent/scheduledExecutor1">
        <contextService jndiName="concurrent/threadContextSvc2"/>
        <concurrencyPolicy max="2"/>
    </managedScheduledExecutorService>

web.xml

<resource-env-ref>
        <resource-env-ref-name>concurrent/scheduledExecutor1</resource-env-ref-name>
        <resource-env-ref-type>javax.enterprise.concurrent.ManagedScheduledExecutorService</resource-env-ref-type>
    </resource-env-ref>
    <resource-env-ref>
        <resource-env-ref-name>concurrent/threadContextSvc2</resource-env-ref-name>
        <resource-env-ref-type>javax.enterprise.concurrent.ContextService</resource-env-ref-type>
    </resource-env-ref>

ma​​in()方法

InitialContext initialContext = new InitialContext();
            executor = (ManagedScheduledExecutorService) initialContext.lookup("concurrent/scheduledExecutor1");
            executor.submit(new OrderProcessCI());

run()方法

public void run() {
        System.out.println(" Thread name :: "+Thread.currentThread().getName()+" Thread id :: "+Thread.currentThread().getId());
    }

在上面的代码中,似乎只有单线程运行。当我尝试在 run 方法中击中断点时,控件仅出现一次。 Sysout 仅打印一次。我怎样才能为至少 5 个线程做到这一点。我还检查了 ThreadPool 概念,但如何自由地实现它。谁能帮我举个例子。

最佳答案

您只看到一个线程,因为您只向执行器提交一个任务 executor.submit(new OrderProcessCI()); ,如果您想要其中 5 个任务,则需要以某种方式向执行器提交 5 个实例。您是否故意使用 ManagedScheduleExecutorService 因为您需要安排重复发生或 future 的作业?如果您只需要运行任务,请改为使用ManangedExecutorService。由于您似乎没有更改线程上下文,因此从配置中省略它并让执行器使用其默认值。鉴于您所说的“5 个线程”,我假设您想要那么多线程(让执行程序确定需要多少线程的首选方法),您需要在 server.xml <concurrencyPolicy max="5" maxPolicy="strict"/> 中执行此操作

关于java - 在 IBM liberty 服务器中实现并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59320686/

相关文章:

java - Mockito 的验证和参数捕获器的工作

java - Kubernetes 卷挂载路径

windows - 服务器端 FTP 批处理脚本

java - 使用员工类在客户端和服务器之间传递的对象

node.js - 从服务器更新客户端信息,无需每次发送请求

java.security.NoSuchProviderException : no such provider: SUN

JAVA OpenGL - 缩放图像以适合窗口

java - MongoDB 导入公司

Spring Data JPA 使用注入(inject)返回 "NoSuchMethodError"

java - CMP 2.0 bean 自动生成主键 WAS 6.1