|
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