如果我使用CacheStorage.open()
在UI线程中获得与Worker线程相同的Cache
,并开始在两端进行读写操作,是否安全?还是会有比赛条件?我希望Cache API是线程安全的(我想像JS中的所有其他API一样)。
答案 0 :(得分:0)
安全吗?
是的。所有方法都返回Promises,因为Cache可能是由另一个线程管理的,然后Promise会解析另一个线程是否执行了该操作。不能同时进行修改或其他此类奇怪的事情。
还是有比赛条件?
只要有多个线程,就有竞争条件,那就是事物的本质。这意味着,如果您add()
在尝试从另一个WebWorker并行检索get()
的高速缓存条目时,可能会也可能不会获得结果。