Skip to content

Commit

Permalink
Rewrote low priority thread pool
Browse files Browse the repository at this point in the history
  • Loading branch information
DHuckaby committed Jul 10, 2013
1 parent 8457c86 commit b455c3d
Showing 1 changed file with 15 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,22 @@
*/
public class LowPriorityThreadFactory implements ThreadFactory {

private static final AtomicInteger poolNumber = new AtomicInteger(1);
private final ThreadGroup group;
private final AtomicInteger threadNumber = new AtomicInteger(1);
private final String namePrefix;
private final int priority;
private static final AtomicInteger COUNT = new AtomicInteger(1);

public LowPriorityThreadFactory() {
SecurityManager s = System.getSecurityManager();
group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
namePrefix = "lp-pool-" + poolNumber.getAndIncrement() + "-thread-";
priority = Thread.MIN_PRIORITY + 1;
}
private final AtomicInteger mThreadNumber = new AtomicInteger(1);
private final String mNamePrefix = "Prime, Thread #" + COUNT.getAndIncrement();

@Override
public Thread newThread(final Runnable task) {
Thread thread = new Thread(new Runnable() {

public Thread newThread(Runnable r) {
Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);
if (t.isDaemon())
t.setDaemon(false);
if (t.getPriority() != priority)
t.setPriority(priority);
return t;
@Override
public void run() {
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);
task.run();
}
}, mNamePrefix + mThreadNumber.getAndIncrement());
thread.setPriority(Thread.MIN_PRIORITY);
return thread;
}
}

0 comments on commit b455c3d

Please sign in to comment.