我有一个完整的 web 服务,需要加载经过训练的模型文件并创建一些其他对象,这需要很多时间。因此我只需要这样做一次(在启动 web 服务时)。目前,系统会在每次 Web 服务调用时加载经过训练的文件和其他一些对象,而且成本很高。你能告诉我如何处理这个问题吗?
问问题
620 次
1 回答
1
您可以使用单例模式。它用于确保某些资源只创建一次。所以基本上,你可以有一个类,其目的是实例化这些文件并让 web 服务调用这个类,就像这样(取自Wikipedia):
public class Singleton {
private static volatile Singleton instance = null;
private static File file1;
...
private Singleton()
{
//Load whatever you need here.
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class)
if (instance == null) {
instance = new Singleton();
}
}
return instance;
}
...
//Other getter and setters for your files and other objects
}
然后,在您的网络服务中,您可以执行以下操作:
...
Singleton.getInstance().getSomeFile();
...
于 2012-06-28T10:38:27.680 回答