Являются ли объекты Cache браузера JavaScript созданными CacheStorage потокобезопасными? - PullRequest
0 голосов
/ 20 декабря 2018

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

1 Ответ

0 голосов
/ 20 декабря 2018

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

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

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

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

...