Skip to content

Commit 300a0ea

Browse files
committed
Changed ThreadFactory for executors (name threads)
1 parent 7bd2d16 commit 300a0ea

File tree

3 files changed

+34
-13
lines changed

3 files changed

+34
-13
lines changed

library/src/com/nostra13/universalimageloader/core/DefaultConfigurationFactory.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
package com.nostra13.universalimageloader.core;
1717

1818
import java.io.File;
19+
import java.util.concurrent.ThreadFactory;
20+
import java.util.concurrent.atomic.AtomicInteger;
1921

2022
import android.content.Context;
2123
import android.graphics.Bitmap;
@@ -91,4 +93,32 @@ public static ImageDownloader createImageDownloader(Context context) {
9193
public static BitmapDisplayer createBitmapDisplayer() {
9294
return new SimpleBitmapDisplayer();
9395
}
96+
97+
public static ThreadFactory createThreadFactory(int threadPriority) {
98+
return new DefaultThreadFactory(threadPriority);
99+
}
100+
101+
private static class DefaultThreadFactory implements ThreadFactory {
102+
103+
private static final AtomicInteger poolNumber = new AtomicInteger(1);
104+
105+
private final ThreadGroup group;
106+
private final AtomicInteger threadNumber = new AtomicInteger(1);
107+
private final String namePrefix;
108+
private final int threadPriority;
109+
110+
DefaultThreadFactory(int threadPriority) {
111+
this.threadPriority = threadPriority;
112+
SecurityManager s = System.getSecurityManager();
113+
group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
114+
namePrefix = "pool-" + poolNumber.getAndIncrement() + "-thread-";
115+
}
116+
117+
public Thread newThread(Runnable r) {
118+
Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);
119+
if (t.isDaemon()) t.setDaemon(false);
120+
t.setPriority(threadPriority);
121+
return t;
122+
}
123+
}
94124
}

library/src/com/nostra13/universalimageloader/core/ImageLoaderConfiguration.java

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
*******************************************************************************/
1616
package com.nostra13.universalimageloader.core;
1717

18-
import java.util.concurrent.ThreadFactory;
19-
2018
import android.content.Context;
2119
import android.graphics.Bitmap;
2220
import android.graphics.Bitmap.CompressFormat;
@@ -28,8 +26,8 @@
2826
import com.nostra13.universalimageloader.core.assist.FailReason;
2927
import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
3028
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
31-
import com.nostra13.universalimageloader.core.download.NetworkDeniedImageDownloader;
3229
import com.nostra13.universalimageloader.core.download.ImageDownloader;
30+
import com.nostra13.universalimageloader.core.download.NetworkDeniedImageDownloader;
3331
import com.nostra13.universalimageloader.core.download.SlowNetworkImageDownloader;
3432
import com.nostra13.universalimageloader.utils.L;
3533

@@ -64,7 +62,7 @@ public final class ImageLoaderConfiguration {
6462
final DiscCacheAware discCache;
6563
final ImageDownloader downloader;
6664
final DisplayImageOptions defaultDisplayImageOptions;
67-
final ThreadFactory displayImageThreadFactory;
65+
final int threadPriority;
6866
final boolean loggingEnabled;
6967

7068
final DiscCacheAware reserveDiscCache;
@@ -87,14 +85,7 @@ private ImageLoaderConfiguration(final Builder builder) {
8785
loggingEnabled = builder.loggingEnabled;
8886
downloader = builder.downloader;
8987
tasksProcessingType = builder.tasksProcessingType;
90-
displayImageThreadFactory = new ThreadFactory() {
91-
@Override
92-
public Thread newThread(Runnable r) {
93-
Thread t = new Thread(r);
94-
t.setPriority(builder.threadPriority);
95-
return t;
96-
}
97-
};
88+
threadPriority = builder.threadPriority;
9889

9990
networkDeniedDownloader = new NetworkDeniedImageDownloader(downloader);
10091
slowNetworkDownloader = new SlowNetworkImageDownloader(downloader);

library/src/com/nostra13/universalimageloader/core/ImageLoaderEngine.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ private ExecutorService createTaskExecutor() {
100100
boolean lifo = configuration.tasksProcessingType == QueueProcessingType.LIFO;
101101
BlockingQueue<Runnable> taskQueue = lifo ? new LIFOLinkedBlockingDeque<Runnable>() : new LinkedBlockingQueue<Runnable>();
102102
return new ThreadPoolExecutor(configuration.threadPoolSize, configuration.threadPoolSize, 0L, TimeUnit.MILLISECONDS, taskQueue,
103-
configuration.displayImageThreadFactory);
103+
DefaultConfigurationFactory.createThreadFactory(configuration.threadPriority));
104104
}
105105

106106
/** Returns URI of image which is loading at this moment into passed {@link ImageView} */

0 commit comments

Comments
 (0)