Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在线程中加载图片:重复_Java_Multithreading_Image_Concurrency_Duplicates - Fatal编程技术网

Java 在线程中加载图片:重复

Java 在线程中加载图片:重复,java,multithreading,image,concurrency,duplicates,Java,Multithreading,Image,Concurrency,Duplicates,线程问题。我试图通过threadpoolexecutor从一组URL加载图像。我跟踪已在哈希集中尝试过的url,并且仅在以前未使用该url的情况下执行任务。我添加加载的图片,速度非常快,但是我得到了重复的图片,因为线程一直在添加。添加的对象必须作为新实例清除,因为我使用SettingPicture数据对象来存储图像。这导致了重复。这里的代码:为什么需要这个while循环和triedPic集,for循环还不够吗?顺便说一句,HashSet是在hashcode上运行的,所以如果你不想在HashSet

线程问题。我试图通过threadpoolexecutor从一组URL加载图像。我跟踪已在哈希集中尝试过的url,并且仅在以前未使用该url的情况下执行任务。我添加加载的图片,速度非常快,但是我得到了重复的图片,因为线程一直在添加。添加的对象必须作为新实例清除,因为我使用SettingPicture数据对象来存储图像。这导致了重复。这里的代码:

为什么需要这个while循环和triedPic集,for循环还不够吗?顺便说一句,HashSet是在hashcode上运行的,所以如果你不想在HashSet中有重复项,你就必须对其进行ovvrride,而循环是个糟糕的主意。你计算过你在那里排队的任务有多少吗?应该是100,因为提交任务是即时的,不会改变while循环的条件。此外,您的代码绝对不是线程安全的(这就是副本的来源)。既然你的方法在所有图像加载(或不加载)之前都是阻塞的,你考虑过不使用线程吗?我试着只使用foor循环,但结果很不一样。PictureData列表(我从中获取URL)有100个URL,但我通常会得到20-50个图片,我需要确保我得到所有。不使用线程的速度太慢,比如启动时30秒,所以这不是一个选项