|
8 | 8 |
|
9 | 9 | import java.io.FileDescriptor;
|
10 | 10 | import java.io.IOException;
|
11 |
| -import java.util.concurrent.ExecutorService; |
12 |
| -import java.util.concurrent.Executors; |
| 11 | +import java.util.concurrent.LinkedBlockingQueue; |
13 | 12 | import java.util.concurrent.ThreadFactory;
|
| 13 | +import java.util.concurrent.ThreadPoolExecutor; |
| 14 | +import java.util.concurrent.TimeUnit; |
14 | 15 |
|
15 | 16 | public class MediaTranscoder {
|
16 | 17 | private static final String TAG = "MediaTranscoder";
|
| 18 | + private static final int MAXIMUM_THREAD = 1; // TODO |
17 | 19 | 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; |
24 | 21 |
|
25 | 22 | 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 | + }); |
26 | 32 | }
|
27 | 33 |
|
28 | 34 | public static MediaTranscoder getInstance() {
|
|
0 commit comments