Sto scrivendo un piccolo programma che è un client di qualche protocollo. Volevo che questo programma avesse un database di filesystem. la directory principale conterrebbe una directory per un server che è configurato e la directory del server conterrà cose come le impostazioni del server in json e altri dati, questa volta sono certificati, non sono sicuro che i certificati vengano archiviati in directory separate. La domanda è: se è possibile, anche se raro, che più istanze di questa app possano accedere al database, e anche questo programma può essere eseguito in modalità daemon multithread, quali tipi di blocchi potrebbero essere necessari per il thread e per jvm?
Ad esempio, dovrei usare un blocco di lettura / scrittura per la sincronizzazione tra thread + un blocco di file condiviso o esclusivo? dovrei bloccare l'intero database, o solo la directory vicino al set di file che voglio cambiare, come la directory del server?