我正在和我的团队一起做一个 java 项目。总而言之,我们有一个主类,它有一个实例化和调用“保存”类的方法。这个“保存”类使用几个构造函数和一些可见和不可见的方法将文件保存回服务器。该类是 CPU 密集型和耗时的,这会阻止主应用程序显示进度条对话框窗口,让用户知道保存的状态。他们要求我修改“保存”类,使其产生自己的线程,以便主应用程序的其余部分可以完成向用户显示信息的较小任务。
这是它的一般概念:
class MainApp{
...
private void doSave()
{
Save s = new Save();
StatusWindow sw = new StatusWindow();
if save_this
s.saveThis(sw);
if save_that
s.saveThat(sw);
...
}
...
}
class Save{
...
public void saveThis(StatusWindow s)
{
//alot of code
s.update;
}
public void saveThat(StatusWindow s)
{
//alot of code
s.update;
}
... // some non-visible methods, even more code
}
我目前是 Java 线程的新手,但我对它们的工作原理有基本的了解。据我了解,一个实现 Runnable 的类,当它被实例化为一个新线程时,就会执行 run() 方法。问题是,由于不同类型的文件有不同类型的保存方法,我如何将这些方法实现到 run() 方法中?run() 方法是在新线程中实例化类并在其上调用 .start() 时执行的唯一方法吗?
什么是解决这个问题的好方法?是否需要重新设计“Save”类以使其实现 Runnable?
如果需要更多详细信息,请告诉我。感谢您的任何见解!
更新:感谢大家的帮助!这些解决方案将在未来派上用场。