我有一个旧的Java小程序(不是我写的)需要更好的性能。
我使用了分配:
getToolkit().getImage(imageURL)
我的问题是:
它的接缝图像将逐一加载而不是并行
请求具有所有http keep-alive标志,但是对于每个映像,它会打开一个新的tcp连接。永远不要关闭连接。
是否有使用http keep-alive函数并行处理图像的解决方案?
一个简短的例子,应用程序工作:
public class test
{
Map<String, URL> urlList = new HashMap<String, URL>();
urlList.put("test", "/test.jpg");
urlList.put("grrr", "/grrr.jpg");
urlList.put("htutz", "/htutz.jpg");
urlList.put("fsdfgf", "/fsdfgf.jpg");
urlList.put("fdgsfd", "/fdgsfd.jpg");
urlList.put("fdgtzt", "/fdgtzt.jpg");
urlList.put("reterg", "/reterg.jpg");
urlList.put("ssdfsfdgsfd", "/ssdfsfdgsfd.jpg");
for (URL imageUrl: urlList) {
{
new ImageExample(imageUrl);
}
}
public class ImageExample extends JApplet {
Image image;
public void ImageExample(URL imageUrl) {
image = getToolkit().getImage(imageUrl);
}
public void paint(Graphics g) {
g.drawImage(image, 20, 20, this);
}
@Override
public void draw( Graphics g )
{
paint(g);
}
}
答案 0 :(得分:1)
创建一个新线程来加载每个图像并在加载图像时终止它。
像这样你将同时加载所有图像而不是图像再加载图像。 (而且你也不会阻止ui线程)
(因为你不会使用缓存)