Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-10-2007, 11:31   #1
Abdujaparov
Senior Member
 
Iscritto dal: Aug 2004
Città: Palermo
Messaggi: 1079
Sincronizzazione lettura/scrittura su più file tra thread in java

Salve a tutti ho scritto 3 classi che hanno il compito di manipolare un file xml.
Ho una classe che sfrutta sax per leggere dal documento xml;
una classe che usa JDom per scrivere sul documento xml;
una classe che racchiude le altre due in modo da sincronizzare eventuali accessi al file xml. Quest'ultima classe è quella che viene utilizzata da un server concorrente e che speravo mi permettesse di realizzare la sincronizzazione, solo che ho problemi non indifferenti nel capire come realizzare questa sincronizzazione dato che io non vedo direttamente il file ma solo le due classi per leggere e scrivere su.

La classe che ho scritto per la sincronizzazione è questa:
Codice:
import java.util.Vector;

public class ReadWriteXML {
	
	private XMLSaxReaderStat xsrs; //Classe che usa SAX per leggere file XML
	private XMLJDomWriterStat xjws;// Classe che usa JDOM per scrivere su file XML
	private String file;
	public final int STATISTICS_FAILED=555;
	public final int STATISTICS_SUCCESSFUL=666;
	
	public ReadWriteXML(String file){
		this.file=file;
		xsrs = new XMLSaxReaderStat(file);
		xjws = new XMLJDomWriterStat(file);
	}
	
	public synchronized void changeFile(String file){
		this.file=file;
		xsrs = new XMLSaxReaderStat(file);
		xjws = new XMLJDomWriterStat(file);
	}
	
	public synchronized int getNumberOfRequest(String method){
		Vector<String> risultati= xsrs.getData(method, "numberOfRequest");
		return Integer.parseInt(risultati.get(0));
	}
	
	public synchronized int getNumberOfFailedRequest(String method){
		Vector<String> risultati= xsrs.getData(method, "numberOfFailedRequest");
		return Integer.parseInt(risultati.get(0));
		
	}
	
	public synchronized int getNumberOfSuccessfulRequest(String method){
		Vector<String> risultati= xsrs.getData(method, "numberOfSuccessfulRequest");
		return Integer.parseInt(risultati.get(0));
	}
	
	public synchronized void updateStatistics(String method, int tipoAgg, long ttot){
		if(tipoAgg==STATISTICS_SUCCESSFUL)
		xjws.updateStatistic(method, xjws.RESPONSE_TIME, xjws.NUMBER_OF_SUCCESSFULL_REQUEST, (int)ttot);
		else xjws.updateStatistic(method, xjws.RESPONSE_TIME, xjws.NUMBER_OF_FAILED_REQUEST, (int)ttot);
	}
}
La classe deve permettere di leggere e/o scrivere sul file xml. Ho provato a dichiarare i metodi synchronized però non credo funzioni dato che l'unico metodo che scrive (updateStatistics) non ha nulla in comune con tutti gli altri metodi, o sbaglio?
Un'altra domanda, io ho a disposizione più file xml da cui posso leggere e che posso scrivere in contemporanea ma come ho scritto la classe non credo che venga gestita anche questa eventualità dato che forse sarebbe meglio inizializzare in ogni metodo le classi per la lettura e la scrittura di un file o sbaglio?
Come potrei sincronizzare l'intera classe in modo che vi si acceda uno alla volta?
Grazie a tutti, ciao ciao.
Abdujaparov è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La prima missione orbitale del razzo spa...
Servizi in streaming sempre più c...
Anteprima della Leapmotor B03X: inizia l...
Anthropic accusa la Cina: Claude utilizz...
I satelliti Rassvet (Starlink russo) di ...
Un agente IA ha risolto un problema su W...
Cina: la CMSA potrebbe cambiare parte de...
68 mensilità di bonus per i dipen...
Rocket Lab ha fatto ricorso contro la de...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v