如何在android

时间:2015-05-18 03:44:28

标签: java android

我想从sdcard中同时使用ThreadPoolExecutor读取多个文件。选择Threads的数量的最佳方法是什么?是否可以根据可用处理器的数量选择尺寸?

1 个答案:

答案 0 :(得分:5)

根据处理器数量选择<select name="mod_simpleemailform_field1_1" id="mod_simpleemailform_field1_1" class="mod_sef_input_select select"> <option value="">Day</option> <?php for($i = 1; $i <= 10; $i++) { if($day == $i) { echo '<option selected="selected">' . $i . '</option>'; } else { echo '<option>' . $i . '</option>'; } } </select> 的数量是一个非常好的解决方案,因为它可以根据运行应用程序的设备的硬件进行扩展。可以在Threads的{​​{3}}中找到一个很好的例子:

AsyncTask

我认为这是最佳实践解决方案。

如果您想更好地了解他们如何使用private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors(); private static final int CORE_POOL_SIZE = CPU_COUNT + 1; private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1; private static final int KEEP_ALIVE = 1; private static final ThreadFactory sThreadFactory = new ThreadFactory() { private final AtomicInteger mCount = new AtomicInteger(1); public Thread newThread(Runnable r) { return new Thread(r, "AsyncTask #" + mCount.getAndIncrement()); } }; private static final BlockingQueue<Runnable> sPoolWorkQueue = new LinkedBlockingQueue<Runnable>(128); public static final Executor THREAD_POOL_EXECUTOR = new ThreadPoolExecutor(CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE, TimeUnit.SECONDS, sPoolWorkQueue, sThreadFactory); ,您可以查看AsyncTask source code的源代码。