在java swingworker后台线程中使用多个线程

时间:2015-12-18 09:10:31

标签: java multithreading swingworker

我使用java swingworker作为后台进程运行作业

class btnTakePhotoClicker implements ImageButton.OnClickListener

现在,我需要使用不同的参数多次(异步)调用后台进程。由于它是后台进程,第二个调用将覆盖第一个调用参数。我尝试过的一种方法是使用多个线程,比如Thread t1 = new Thread(){...但它会间歇性地抛出异常。

任何更好的建议。注意,我不能在done(){..方法中等待调用第二个调用,因为我进行了很多调用,并且不确定最初的调用次数。请建议是否有一些好方法。

1 个答案:

答案 0 :(得分:1)

您可以将ExecutorService与固定大小的线程池一起使用。您可以找到有关如何设置正确的池大小here

的更多信息

以下是可以尝试的内容:

  1. 创建执行程序服务:
  2. ExecutorService service = Executors.newFixedThreadPool(5)//将任意值设置为5

    1. 通过实施Callable接口

    2. 创建一个可调用对象
    3. 在call方法中调用Build_JobParams.runJob()。

    4. service.submit(/ **在此处提交“Callable”实例** /)

    5. 如果Build_JobParams.runJob()没有返回任何值,您也可以调用 service.execute但在这种情况下,您需要创建一个Runnable。

      希望这会有所帮助!!