Являются ли объекты Cache браузера JavaScript созданными CacheStorage потокобезопасными?

1

Если я использую CacheStorage.open() для получения того же Cache в потоке пользовательского интерфейса, что и в рабочем потоке, и начинаю чтение/запись из него в обе стороны, это безопасно? Или могут быть условия гонки? Я надеюсь, что Cache API является поточно-ориентированным (я предполагаю, что он, как и все остальное в JS).

Теги:
cachestorage

1 ответ

0

это безопасно?

Да. Все методы возвращают Promises, так как кэш может управляться другим потоком, затем Promise разрешает, если другой поток выполнил операцию. Не может быть одновременных модификаций или других подобных странных вещей.

Или могут быть условия гонки?

Всякий раз, когда есть несколько потоков, могут быть условия гонки, это в природе вещей. Это означает, что если вы add() запись в кэш при попытке получить ее, то get() параллельно с другим WebWorker может получить или не дать вам результат.

  • 0
    Таким образом, можно удалить ключ кеша в одном потоке и установить тот же ключ в другом потоке, и мы не можем сказать, какой из них закончится первым, верно?
  • 0
    @trusktr верно.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню