Ich habe folgende Implementierung in Java, wo ich eine synchronisierte Methode zu verwenden, versuchen:Problem mit synchronisierten Methode in Java
class dbAccess{
public synchronized void getGUID(){
counter=/*Access last count from txn_counter table */
/*Insert a unique value to txn_counter table based on the acquired value of counter */
/*Insert new counter value to GUID_log table */
}
}
Der Abschnitt zwischen/* */einigen SQL-Abfragen darstellen. Die Implementierung hat 10 Threads. Ich hatte gehofft, dass der Rückgabewert jedes Mal einmalig sein würde. Es kommt jedoch vor, dass mehrere Läufe den gleichen Wert des Zählers zurückgeben.
Können Sie bitte darauf hinweisen, wenn ich etwas falsch mache. Und ist es der richtige Weg, dies zu tun?
Vielen Dank, dass Sie auf das Problem mehrerer Instanzen von dbAccess hingewiesen haben. Das war, was ich tat. Jetzt versuche ich, es als statische Methode zu implementieren, wie Sie vorschlagen. Ich hoffe, das funktioniert für mich. – jitendra