Das Beispiel dieses Artikels zeigt die Verwendung der Java -Thread -Synchronisation an. Teilen Sie es für alle für Ihre Referenz. Die spezifische Analyse ist wie folgt:
Die Verwendung von Multi -Threading bietet unseren Verfahren viel Bequemlichkeit und bringt uns auch Probleme, die wir in der Vergangenheit noch nie in Betracht gezogen haben. Wenn wir gemeinsame Ressourcen mit mehreren Threads verwenden, werden Unfälle stattfinden: Zum Beispiel gehen wir zusammen, um zusammen zu essen, und das Essen auf dem Tisch ist gemeinsame Ressourcen. Ich sah das Ziel, als ich es sah, verschwand plötzlich die Hühnerbeine, und ein Faden, der näher an den Teller war, hielt es stolz.
Um das Auftreten der oben genannten Probleme zu vermeiden, bietet Java "synchronisierte (Synchronisation) Modifikator", um einen Ressourcenkonflikt zu vermeiden. Ein Maschinenschloss (Sperre), das für den Rest seines Lebens inhärent ist und keinen Code schreiben muss, um ihn zu aktivieren. Wenn wir eine synchronisierte Funktion aufrufen, wird das Objekt gesperrt, und alle synchronisierten Funktionen im Objekt können erst aufgerufen werden, wenn die erste Funktion ausgeführt und die Sperre entsperrt ist.
Java.Awt.BorderLayout Java.Awt.Ection Javax.swing.jtextarea; Das Konto wird durch den Betrag der Bankeinzahlung angezeigt, um private Xtarea textArea = null anzuzeigen; eine Bankauszahlungsschnittstelle*/ public testmain5 () {Super ("Thread -Synchronisierungstest"); = new JTextArea (); ("Clock Tower Sub -Branch", MyAccounts, Bank.Dea L_Saving, 800); MyAccounts, Bank.deal_fetch, 200); "TUGEN SUB -Branch", myAccounts, Bank.deal_fetch, 700); SPD (SPD (SP); .exit_on_close); Features*/ Class Bank erweitert Thread {/ *** Statisches Feld: Es wird verwendet, um den Speicher anzugeben. Static Final. * @Param myAccounts mein Bankkonto* @param kaufen Verhalten, Referenzfeld: Dead_Saving oder Defer_Fetch* @param count ende . Einzahlungsgeschäft $ count = myAccounts.saving (count);} else if (buy == bankal_fetch) {// Wenn es sich )); = 1100; Nach Abschluss* / public int sparen (int c) {synchronisiert (count) {// return count += c; Überprüfen Sie zuerst die Einzahlung im Konto $ count += c; {ex.printstacktrace ();} count = $ count; {synchronized (count) {// return countt -= c; C; Letzte Einzahlungsnummer}} public static void main (String [] args) {new testmain5 ();}}Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.