Например, один класс имеет частную базу данных и общедоступный c метод- put
. У нас есть несколько потоков для запуска put
, это нормально? (пс: мы не рассматриваем порядок k / v)
void put(List<byte[] keys, List<byte[]> values) {
WriteOptions writeOpt = new WriteOptions();
WriteBatch batch = new WriteBatch();
for (int i = 0; i < keys.size(); ++i) {
batch.put(keys.get(i), values.get(i));
}
this.db.write(writeOpt, batch);
}
do c здесь говорит, что
However other objects (like Iterator and WriteBatch) may require external synchronization.
If two threads share such an object, they must protect access to it using their own locking protocol.
Но для В приведенном выше примере потоки не разделяют один и тот же WriteBatch
, они владеют собственным WriteBatch
и записывают в базу данных. Интересно, это нормально?