Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Java Programming >> .

Come prevenire accessi simultanei a un metodo in Java

I moderni processori con più core possono usufruire di applicazioni Java concorrenti . Un'applicazione simultaneo è uno che esegue diverse operazioni simultaneamente . Concorrenza presenta sfide uniche che devono essere affrontate per evitare problemi . Uno dei problemi principali si verifica quando due thread di esecuzione ogni accesso lo stesso metodo contemporaneamente . Un thread può interferire con un altro e rendere i dati inaffidabili . Per controllare questo problema , è possibile impedire l'accesso simultaneo a un metodo che utilizza la funzionalità di sincronizzazione di Java . Cose che ti serviranno
Java Software Development Kit con NetBeans Integrated Development Environment ( IDE ) Bundle
Mostra più istruzioni
1

caricare il NetBeans IDE facendo clic sulla sua icona del programma . Quando il caricamento del programma , passare a "Nuovo /Nuovo progetto " e selezionare " Java Application " dalla lista sul lato destro dello schermo. Un nuovo file di codice sorgente viene visualizzato nell'editor di testo NetBeans . Il file di codice sorgente contiene una funzione principale vuota
2

dichiarare una variabile statica denominata x scrivendo il seguente all'interno della funzione principale nel codice sorgente : . Static int x = 0;


3

Creare un metodo sincronizzato con l'aggiunta della parola chiave " sincronizzato " per la dichiarazione di metodo . Un metodo sincronizzato può accedere da un solo thread alla volta , evitando così incoerenze. Per dichiarare un metodo denominato " methodName " sincronizzato , scrivere la seguente dichiarazione nel file di codice sorgente : nomeMetodo sincronizzato pubblico ( ) economici 4

Incrementa un numero intero , scrivendo la seguente dichiarazione all'interno delle parentesi graffe del metodo : tornare x + + ;
5

Chiamare il metodo sincronizzato . Per capire ciò che compie la sincronizzazione , prima supponiamo che il metodo non è stato sincronizzato . Se due thread paralleli chiamano il metodo simultaneamente , ciascuno di essi incrementare la variabile x . Poiché x parte da 0 , il risultato di una operazione di incremento sarà x = 1 . Questo è un problema perché il metodo è stato chiamato due volte , e quindi deve essere uguale x 2 . Poiché " nomeMetodo " è sincronizzato , solo uno dei due fili paralleli entrerà nel metodo alla volta . Un thread entrerà " nomeMetodo , " di incremento x , e l'uscita . Questo permette al secondo thread per entrare " nomeMetodo " ed eseguire la seconda operazione di incremento . Con la parola chiave sincronizzato , due chiamate al risultato " nomeMetodo " in X è pari a 2 . Una chiamata al metodo può essere scritto in questo modo: nomeMetodo ( ) ;

 

Programmazione © www.354353.com