Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 如何在资源适配器内的单独线程中执行任务?_Multithreading_Jakarta Ee_Jca - Fatal编程技术网

Multithreading 如何在资源适配器内的单独线程中执行任务?

Multithreading 如何在资源适配器内的单独线程中执行任务?,multithreading,jakarta-ee,jca,Multithreading,Jakarta Ee,Jca,我们开发了一个资源适配器,它将完成以下两件事情 在给定位置提取存档文件 删除给定目录及其内容 如今,提取和删除都是同步的 提取文件时,我们创建一个目录(originalName\u tmp)。提取成功后,我们将其重命名为originalName。同样,在删除时,我们将其重命名为originalName\u tmp。重命名后,我们将从数据库中删除相应的条目。如果成功,我们将删除重命名的目录 今天,提取和删除用例都需要30秒以上的时间。我们不介意提取归档文件所需的时间。但删除应该很快发生 因此,我们

我们开发了一个资源适配器,它将完成以下两件事情

  • 在给定位置提取存档文件
  • 删除给定目录及其内容
  • 如今,提取和删除都是同步的

    提取文件时,我们创建一个目录(
    originalName\u tmp
    )。提取成功后,我们将其重命名为
    originalName
    。同样,在删除时,我们将其重命名为
    originalName\u tmp
    。重命名后,我们将从数据库中删除相应的条目。如果成功,我们将删除重命名的目录

    今天,提取和删除用例都需要30秒以上的时间。我们不介意提取归档文件所需的时间。但删除应该很快发生

    因此,我们决定创建一个新线程,并在该线程中执行删除操作

    实现这一目标的最佳方式是什么?我听说会有一个工作线程,我们可以抓取它的实例并向它提交一个作业/任务。你怎么能做到这一点


    提前感谢大家。

    您阅读了Java教程中的并发课程了吗?它提供了大量关于如何创建和使用线程的信息。我建议你读一下,如果你有什么不明白的话就回来@sprinter我阅读了文档,了解到执行器是我想要的,有一个固定的线程池。是的,这听起来对我来说是正确的。他们很强大。祝你好运