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

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

1 ответ

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

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

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

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

Другие вопросы по тегам