この記事の例は、Javaスレッドの同期の使用を示しています。あなたの参照のために全員のためにそれを共有してください。特定の分析は次のとおりです。
マルチスレッドを使用することは、当社の手順に多くの利便性を提供し、過去に考慮したことのないトラブルももたらします。マルチスレッドの共有リソースを使用すると、事故が発生します。たとえば、私たちは一緒に食事をし、誰もがスレッドであり、テーブルの上の食べ物は、私がテーブルに煮込んだリソースを見るときです。目標を見て、私がそれを見たとき、私は突然~~~鶏の足が消え、プレートに近い糸がそれを誇らしげに保持していました。
上記の問題の発生を回避するために、Javaはリソースの競合を回避するために、「同期(同期)修飾子」を提供します。マシンロック(ロック)は、彼の人生の残りの部分に固有のものであり、それを有効にするためにコードを記述する必要はありません。同期された関数を呼び出すと、オブジェクトがロックされ、オブジェクト内のすべての同期関数は、最初の関数が実行され、ロックがロック解除されるまで呼び出すことはできません。
Import.word.awt.awt.awt.javax.swing.jpanel; javax.swing.jtextarea; import javax.swing.jtextfield;/***スレッドの同期*javaのスレッド同期の必要性を証明するためのシミュレーション*:同期は、デコレーションの変更が装飾されていることです。アカウント、銀行預金の量は、プライベートXTAREA TEXTAREA = NULLを表示するために表示されます。銀行の撤退インターフェイス*/パブリックテストメイン5( "スレッド同期テスト"); = new jtextarea.settext( "Transaction Log:"); (「クロックタワーサブブランチ」、bank.dea l_saving、800); myaccounts、bank.deal_fetch、200); 「Tugen sub -branch」、bank.deal_fetch、}); spd(sp); exit_on_close); this.setsize(300、200); setlocationRelativeto(null);機能*/クラスバンクはスレッド{/ *** staticフィールド:ストレージを示すために使用されます*/ public static final to defing_saving = 0;/ *** staticフィールド:*/ publicの抽出を示すために使用されますstatic final。 * @param myAccounts私の銀行口座* @param Buy行動、リファレンスフィールド:Dead_savingまたはdefer_fetch* @param count money number*/ public bank(myaccounts myaccounts、in t buy、int count){super(name); myaccounts = myaccounts;デポジットビジネス$ count = myaccounts.saving(count);} else if(buy == bankal_fetch){// business business $ count = myaccounts.fetch(count);} text.settext(integer.tostring($ count($ count) ); Textarea.Append( " / n" + this.getName() + " +(bankal_saving?$ count);} / ***私のアカウント番号*同期テスト* / class byAccounts {private integer count = 1100; public myaccounts(){} / ***查* / public inq uire(){{synchronized(count){return count;} / *** depose business* @param c dopit完了後* / public int saving(int c){// return count += c;最初にアカウントのデポジットを確認してください$ count += c try {thread.sleep(thread.sleep 1000); // {ex.printstacktrace();} count = $ count; {synchronized(count){// countt- = c; c; sweet.sleep(1000 1000);最新のデポジット番号}} public static void main(string [] args){new testmain5();}}}この記事がすべての人のJavaプログラムのデザインに役立つことが期待されています。