Я читал много сообщений здесь и на других сайтах, но не могу найти проблему с созданием моей ошибки:
Я использую AsyncTask, потому что я хочу легко манипулировать потоком пользовательского интерфейса до и после выполнения.
В doInBackground Я создаю ThreadPoolExecutor и запускаю Runnables.
Если я выполнить только 1 Runnable с Исполнителем, не проблема, но если я выполняю другой Runnable я получаю следующую ошибку:Android Signal 11 (SIGSEGV)
06-26 18:00:42.288: A/libc(25073): Fatal signal 11 (SIGSEGV) at 0x7f486162 (code=1), thread 25106 (pool-1-thread-2)
06-26 18:00:42.304: D/dalvikvm(25073): GC_CONCURRENT freed 119K, 2% free 8908K/9056K, paused 4ms+4ms, total 45ms
06-26 18:00:42.327: I/System.out(25073): In Check All with Prefix: a and Length: 4
06-26 18:00:42.390: I/DEBUG(126): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-26 18:00:42.390: I/DEBUG(126): Build fingerprint: 'google/yakju/maguro:4.2.2/JDQ39/573038:user/release-keys'
06-26 18:00:42.390: I/DEBUG(126): Revision: '9'
06-26 18:00:42.390: I/DEBUG(126): pid: 25073, tid: 25106, name: pool-1-thread-2 >>> de.uni_duesseldorf.cn.distributed_computing2 <<<
06-26 18:00:42.390: I/DEBUG(126): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 7f486162
...
06-26 18:00:42.538: I/DEBUG(126): memory map around fault addr 7f486162:
06-26 18:00:42.538: I/DEBUG(126): 60292000-60391000
06-26 18:00:42.538: I/DEBUG(126): (no map for address)
06-26 18:00:42.538: I/DEBUG(126): bed14000-bed35000 [stack]
Я создал ThreadPoolExecutor так:
// numberOfPackages: Number of Runnables to be executed
public void initializeThreadPoolExecutor (int numberOfPackages)
{
int corePoolSize = Runtime.getRuntime().availableProcessors();
int maxPoolSize = numberOfPackages;
long keepAliveTime = 60;
final BlockingQueue workingQueue = new LinkedBlockingQueue();
executor = new ThreadPoolExecutor(corePoolSize, maxPoolSize, keepAliveTime, TimeUnit.SECONDS, workingQueue);
}
Я понятия не имею, почему он терпит неудачу при запуске второй темы.
Возможно утечки памяти?
Любая помощь оценена.
Заранее спасибо
Выполняете ли вы собственный код с помощью NDK? – CommonsWare
Нет. Я не использую собственный код через NDK. Я просто пытаюсь перечислить все перестановки из определенных символов заданной длины. – Naturjoghurt