0

我在我的 Swing 应用程序中创建了两个 Swing 工作线程类。它们是加载线程,保存线程

  1. 加载线程用于从 rest 服务加载数据
  2. 保存线程用于将数据推送到休息服务。

我的问题是,

  • 当我为加载线程创建更多实例时,如何一一执行我的线程?

  • 保存线程应在完成现有加载线程的过程后运行

有没有人指导我为这种情况找到解决方案?

注意:我正在使用 Swing Worker 类来调用休息服务。

4

2 回答 2

0

如果要从多个线程加载数据,并在加载所有数据后从一个线程保存此数据。您可以尝试使用障碍。例如CountDownLatch可以等待所有加载线程完成它们的工作。

于 2013-10-29T09:53:23.667 回答
0

您应该在done加载线程的方法中启动保存线程。您可以将 saveThread 作为构造函数参数传递给 loadThread 或将其定义为类成员。

这应该适合你;

   SaveThread mySaveThread = new SaveThread();
   LoadThread myLoadThread = new LoadThread();

   class LoadThread extends SwingWorker<String, Object> {
       @Override
       public String doInBackground() {
           //do your work 
           return "";
       }

       @Override
       protected void done() {
           try { 
               mySaveThread.execute();
           } catch (Exception ignore) {
           }
       }
   }

   myLoadThread .execute();
于 2013-10-29T09:52:28.110 回答