У меня есть учетная запись Greasemonkey, которая работает в очереди задач. Эта очередь представляет собой кучу сериализованных объектов JSON, разбросанных по частным привилегированным пространствам сценария, для доступа с GM_getValue
, GM_setValue
и GM_listValues
.Синхронизация нескольких экземпляров одного и того же сценария Greasemonkey
Я хотел бы сделать этот скрипт одновременно (тот же компьютер, тот же браузер, разные вкладки), сохраняя общую очередь. Я знаю, что Javascript в основном работает в одном потоке (за исключением Web Workers), но я полагаю, что это не так для страниц, открытых в отдельных вкладках, поэтому он должен запускаться одновременно.
В этом случае, как правильно организовать общий доступ к такому объекту, чтобы предотвратить условия гонки? Появятся ли условия гонки?
Чтобы проверить состояние гонки, 2 потока должны пытаться изменить одну и ту же переменную, которую вы здесь не делаете. – Dalius