Моя проблема в том, что у меня есть две задачи асинхронного программирования, которые делают своего рода матричные умножения. Поэтому обе задачи обращаются к одной и той же матрице. Одна верхняя часть, другая - нижняя. Для проблем с сохранением памяти я использую ArrayLists и удаляю записи, которые мне больше не нужны. Проблема в том, что в обеих задачах есть цикл, и в конце этого цикла он должен ждать другую задачу. Но я не знаю, как это сделать. Задача 1:Как синхронизировать две задачи async?
protected Void doInBackground(Void... paramArrayOfParams) {
android.os.Debug.waitForDebugger();
for(j=1; j<(size+1); j++)
{
....
try{ othertask.wait();
}catch(InterruptedException e){}
//wait for other task();
}
Задача 2:
protected Void doInBackground(Void... paramArrayOfParams) {
android.os.Debug.waitForDebugger();
for(j=1; j<(size+1); j++)
{
....
notifyAll();
//notifythatroundisfinished();
}
Я пытался использовать уведомление и ждать, но мне кажется, что это не решение вопроса. Я не знаю никаких дополнительных методов, которые я мог бы использовать для решения проблемы. Действительно ли возможно подождать два для другой задачи, пока оба работают?
Я ищу решения для решения задач asroid для Android. –
Тогда, возможно, я был прав, предлагая [Семафор] (http://developer.android.com/reference/java/util/concurrent/Semaphore.html). – OldCurmudgeon
Почему этот ответ был отмечен как правильный? Я испытываю проблемы с внутренним петлителем Android. Поток asyc заблокирован, если я вызываю wait() в одном потоке. –