Как я могу остановить второй поток для доступа к тому же методу, который используется в первом потоке?Как заблокировать метод при использовании многопоточности?
0
A
ответ
2
Один из вариантов заключается в использовании @synchronized в методе.
- (NSString *)someMethod {
@synchronized(self) {
// do some work
}
}
Это позволяет метод, который будет вызван, но будет синхронизировать на себя и защитить свою работу (и что более важно, данные, которые он работает на).
0
Посмотрите на NSLock.
Просто найти его при поиске заявления C# блокировки, это, кажется, сделать то же самое ..
Существует также другой SO нить, связанные с синхронизацией:
Смежные вопросы
- 1. Как заблокировать ресурс при использовании BeginInvoke для многопоточности?
- 2. Как добавить в список при использовании многопоточности?
- 3. Как заблокировать главную тему при использовании DownloadFileAsync
- 4. Как заблокировать ресурс с помощью многопоточности?
- 5. Как заблокировать объект при использовании балансировки нагрузки
- 6. проверка условие не выполняется при использовании многопоточности
- 7. Запись в текстовый файл при использовании многопоточности
- 8. Неправильного форматирования при использовании многопоточности и очередей
- 9. ниже ожидаемого ускорения при использовании многопоточности
- 10. Mutex замерзает все приложение при использовании многопоточности
- 11. ошибка при использовании многопоточности и mysqldb
- 12. уменьшить производительность при использовании многопоточности в java
- 13. Замораживание окна при использовании многопоточности в java
- 14. Пример многопоточности - мне нужно заблокировать словарь
- 15. Как реализовать состояние «wait» при использовании многопоточности в C#
- 16. Заблокировать тупик при использовании ReadDirectoryChangesW асинхронно
- 17. Метод остановки многопоточности Java
- 18. Как сверлить список при использовании многопоточности в C#
- 19. При использовании mutex_destroy() Как освободить память: Posix многопоточности
- 20. Как определить, где данные теряются при использовании многопоточности
- 21. Как получить более высокую скорость при использовании многопоточности в python
- 22. Как обновить хэш хэшей при использовании многопоточности в Perl?
- 23. Марк записи как «в использовании» для поддержки многопоточности
- 24. Планировщик простаивает при многопоточности
- 25. Очередь конфликтует при многопоточности?
- 26. Проблемы при использовании BackgroundWorker для многопоточности в MVP
- 27. О многопоточности - метод дважды вызывается
- 28. Как заблокировать обратный ключ в android при использовании Qt
- 29. Как заблокировать все методы класса при использовании одного из них?
- 30. Как заблокировать ориентацию в Portrait при использовании намерения ACTION_IMAGE_CAPTURE?
Это сработало. Спасибо. У меня все еще есть сомнения. Как только процесс завершается первым потоком, имеет ли второй поток доступ к этому методу автоматически? Делают ли все остальные потоки до тех пор, пока первая нить не завершит работу? – Dee
Да, оба потока входят в метод, один выполняет синхронизированный блок кода, а когда он выполняет другой, будет продолжаться выполнение. – bryanmac
Вот более подробное объяснение того, что он делает: http://stackoverflow.com/questions/1215330/how-does-synchronized-lock-unlock-in-objective-c – bryanmac