如何有共同的线程

时间:2019-07-05 18:53:41

标签: multithreading java-ee wildfly-10

我有一个具有几个端点的API(javaee / wildfly)(我只使用了两个,但最终会有更多):

  • 用户访问EndpointA和触发器:线程shortProcessA(在后台触发线程longProcessA)-> shortProcessA结束
  • 用户访问EndpointB和触发器:线程shortProcessB(在后台触发线程longProcessB)-> shortProcessB结束

我的问题是关于longProcessB,它仅应在longProcessA完成后才启动,并在DB中保持状态成功

我的第一个想法是:使用while循环longProcessB等待DB中的longProcessA状态成功...但是我不喜欢它... 我想了解有关线程状态的更多信息:longProcessB等待longProcessA说它的过程完成了,但是有可能吗?

编辑:

ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<Object> c = Executors.callable(new Task());
executor.invokeAll(Arrays.asList(c), 10, TimeUnit.SECONDS);
executor.shutdown();

然后在我的任务中(我将名称设置为线程):

Thread thread = getThreadByName("Import");      
if (thread!= null) {
    while (thread.isAlive() == true) {
        try {
             Thread.sleep(100);
        } catch (InterruptedException ignored) {
        }
    }
}

0 个答案:

没有答案