1

私はより良いパフォーマンスを必要とする古い Java アプレット (私が書いたものではない) を持っています。

私は割り当てを使用します:

getToolkit().getImage(imageURL)

これに関する私の問題は次のとおりです。

  1. 画像は 1 つずつ読み込まれ、並列ではありません

  2. 要求にはすべての http キープアライブ フラグがありますが、イメージごとに新しい TCP 接続が開かれます。また、接続を閉じないでください。

httpキープアライブ機能を使用して画像を並行して処理するソリューションはありますか?

簡単な例、アプリの仕組み:

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);
    }
}
4

1 に答える 1

1

各画像をロードするための新しいスレッドを作成し、画像がロードされたらスレッドを終了します。

このように、画像ごとではなく、すべての画像を同時にロードします。(また、UIスレッドをブロックしません)

(キャッシュを使用しないため)

于 2013-04-02T14:07:35.747 に答える