SwingWorker线程中的多线程

时间:2014-05-01 00:14:06

标签: java multithreading swing swingworker

在阅读关于SwingWorker的这个很好的例子时,我想在这里提出一个问题:

假设在文本文件中搜索单词的任务可以是多线程的,那么并行执行此任务的最佳方法是什么?在搜索每个文件时,我需要更新Swing组件(本例中为JTextarea)。此外,我需要在完成所有线程/任务时更新Component(JTextarea)。

对于那些不想阅读帖子的人:

简而言之,后台任务是搜索给定目录中存在的所有文本文件中的给定单词。按顺序执行搜索,一次读取一个文件。目标是并行搜索。

2 个答案:

答案 0 :(得分:1)

首先证明该任务实际上是CPU绑定的,而不是I / O绑定的。换句话说,两个线程并行读取两个文件比一个线程连续读取两个文件更快吗?根据存储介质,文件的大小,磁盘上的物理位置以及许多其他内容,两个线程实际上可能会更慢。

答案 1 :(得分:1)

您可以使用此example中建议的方法:Supervisor工作人员等待多个子工作线程共享的CountDownLatch