Skip to content

Commit f7b6dea

Browse files
committed
use custom on-demand thread pool executor
1 parent 5ef5974 commit f7b6dea

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

lib/src/main/java/net/ypresto/androidtranscoder/MediaTranscoder.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,27 @@
88

99
import java.io.FileDescriptor;
1010
import java.io.IOException;
11-
import java.util.concurrent.ExecutorService;
12-
import java.util.concurrent.Executors;
11+
import java.util.concurrent.LinkedBlockingQueue;
1312
import java.util.concurrent.ThreadFactory;
13+
import java.util.concurrent.ThreadPoolExecutor;
14+
import java.util.concurrent.TimeUnit;
1415

1516
public class MediaTranscoder {
1617
private static final String TAG = "MediaTranscoder";
18+
private static final int MAXIMUM_THREAD = 1; // TODO
1719
private static volatile MediaTranscoder sMediaTranscoder;
18-
private ExecutorService mExecutor = Executors.newFixedThreadPool(1, new ThreadFactory() {
19-
@Override
20-
public Thread newThread(Runnable r) {
21-
return new Thread(r, "MediaTranscoder-Worker");
22-
}
23-
}); // TODO
20+
private ThreadPoolExecutor mExecutor;
2421

2522
private MediaTranscoder() {
23+
mExecutor = new ThreadPoolExecutor(
24+
0, MAXIMUM_THREAD, 60, TimeUnit.SECONDS,
25+
new LinkedBlockingQueue<Runnable>(),
26+
new ThreadFactory() {
27+
@Override
28+
public Thread newThread(Runnable r) {
29+
return new Thread(r, "MediaTranscoder-Worker");
30+
}
31+
});
2632
}
2733

2834
public static MediaTranscoder getInstance() {

0 commit comments

Comments
 (0)