Я запускаю приложение с большим количеством потоков. Все эти потоки обновляют базу данных с помощью GPS-координат. Между тем приложение может получать запрос на синхронизацию. Прежде чем сервер сможет обработать этот запрос, все написанные потоки должны закончить работу. Поэтому я использую массив ручек ожидания для управления этим.Увеличьте приоритет потока на машинах ожидания
Так вот сценарий:
Актеры:
1 Synchro Thread
N Writing Thread
N Пишущие нити работают. Одна синхроническая нить прибывает на wait ручка останавливается. Он утверждает, что замок. Это делается в в конце списка из раздела «Требование блокировки потоков».
Проблема в том, что этот список может быть очень длинным, или моя синхронизирующая нить - - приоритет.
Как я мог достичь, чтобы дать ему VIP-проход?
Это не сработает в моей архитектуре. Писатели действительно должны закончить работу до того, как синхронизация состоится. Я просто хочу узнать, может ли молодой поток получить приоритет против более старого, чтобы получить блокировку. – Roubachof
Writer (Synchro) получит приоритет на ReaderWriterLockSlim, и «Readers» (ваши DataWriters) будут завершены, прежде чем разрешить доступ в режиме «Запись». У вас может быть несколько одновременных режимов «Чтение» (ваши DataWriters), но только один поток exclusivly «Write» (синхронный) режим. – MaLio