Java 如何在okhttp中使用共享缓存

Java 如何在okhttp中使用共享缓存,java,okhttp,Java,Okhttp,是否可以以共享的方式使用okhttp缓存,即:让多个客户端访问同一缓存目录,以避免每个客户端都保留自己的缓存目录 我们发现: 多个缓存同时访问同一缓存目录是错误的 我不是在寻找使用同一文件夹的不同缓存,而是可以由多个客户端更新的单个共享缓存 一个简单的例子是(在Java中)运行: 这样做是否不安全?如果是这样的话,是否有其他方法可以实现这一点,或者根本不可能实现这一点?是的,这是完全安全的。让多个缓存实例共享一个目录是不安全的,无论是在一个进程中还是在多个进程中。你好,Jesse,如果我理解正确

是否可以以共享的方式使用okhttp缓存,即:让多个客户端访问同一缓存目录,以避免每个客户端都保留自己的缓存目录

我们发现:

多个缓存同时访问同一缓存目录是错误的

我不是在寻找使用同一文件夹的不同缓存,而是可以由多个客户端更新的单个共享缓存

一个简单的例子是(在Java中)运行:


这样做是否不安全?如果是这样的话,是否有其他方法可以实现这一点,或者根本不可能实现这一点?

是的,这是完全安全的。让多个
缓存
实例共享一个目录是不安全的,无论是在一个进程中还是在多个进程中。

你好,Jesse,如果我理解正确,创建多个OkHttp客户端应该是安全的,只要它们使用相同的
缓存
对象。这是正确的吗?共享的
缓存
对象是否会确保客户端不会同时尝试写入同一个缓存?如果这是正确的,将
缓存
对象存储为一个单一对象并同时用于多个OkHttp客户端是否安全?是的,您肯定想要一个单一对象
    Cache cache = new Cache(cacheDirectory, cacheSize);

    client  = new OkHttpClient.Builder().cache(cache).build();
    client2 = new OkHttpClient.Builder().cache(cache).build();