пожалуйста, примите во внимание следующее:
У меня есть очередь объектов
как массив.
Я обрабатываю их с верхней части
массив (в позиции 1) перед вызовом
arrayDeleteAt()
чтобы удалить его из
массив.
Я добавляю новый элемент очереди вверху
массив используя arrayAppend()
.
Это отлично работает. Однако теперь я хочу изменить порядок массива сразу после добавления элемента.
Я обеспокоен тем, что если поток извлекает из очереди, он обнаружит, что порядок очереди изменился между тем, как он берет элемент в позиции 1, и удаляет элемент в позиции 1 - потому что за это время был добавлен дополнительный элемент очередь была пересортирована. Поэтому я должен убедиться, что моя очередь является поточно-ориентированной.
Есть ли способ сделать это с помощью тега cflock
? Так как мой код добавления и удаления находится в разных местах кода, поток, выполняющий один бит кода, должен знать, что поток выполняет другой определенный бит кода, и останавливаться, пока этот другой поток не перестанет выполнять свой код.
Или мне лучше просто поднять флаг, пока идет сортировка, и предотвратить что-либо из массива, пока идет сортировка?
Все это происходит в области действия APPLICATION
на сервере CF 8 Enterprise.
Заранее спасибо за любую помощь.
Киэрэн