Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Потоки и общий ресурс - как решить проблему? 
:(
    Опции темы
cosamia
Дата 7.10.2012, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 11.5.2005

Репутация: нет
Всего: нет



У меня есть несколько кнопок, их действия выполняются в отдельных асинхронных потоках;
Есть 1 массив который эти потоки запонляют
По идее, логика такова: нажал на кнопку - заполнил массив. Нажал на другую кнопку - заплнил тот же массив но другими данными.
В этой логике есть недочет: если очень быстро нажимать на кнопки, но массив будет заполняться из разных потоков.
Попробовал решить эту задачу блокированием ресурса - массива используя директиву @synchronized в куске кода где идет заполнение массива
В результате получил следующий результат:
- если кнопки нажимать медленно, то все ок
- если нажимать быстро, то программа вообще вылетает с ошибкой что размерность массива не та...

Массив использую мьютебл и безазмерный


PM   Вверх
Bitter
Дата 7.10.2012, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 10
Всего: 27



Ну синхронизируйте действия флагами. Нажал на кнопку - если флаг выставлен, то выход, иначе выставить флаг и заполнить данными. По завершении заполнения массива - сбросить флаг
PM MAIL ICQ Skype   Вверх
cosamia
Дата 7.10.2012, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 11.5.2005

Репутация: нет
Всего: нет



Интерсная идея, попробую...
PM   Вверх
Maksys
Дата 8.10.2012, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Future Splasher
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 15.6.2005
Где: Екатеринбург

Репутация: нет
Всего: 17



Попробуйте реализацию синглтона через dispatch_once


--------------------
 С уважением, BiMaWa™©.
user posted image
user posted image
PM MAIL ICQ Skype GTalk   Вверх
cosamia
Дата 8.10.2012, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 11.5.2005

Репутация: нет
Всего: нет



Цитата(Maksys @ 8.10.2012,  08:07)
Попробуйте реализацию синглтона через dispatch_once

Спасибо Максис, посмотрю как это сделать
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | iOS | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.