В примере этой статьи рассказывается об использовании синхронизации потока Java. Поделитесь этим для всех для вашей ссылки. Конкретный анализ заключается в следующем:
Использование мультиподбота обеспечивает много удобства для наших процедур, а также приводит к нам неприятностей, которые мы никогда не рассматривали в прошлом. Когда мы используем многочисленные общие ресурсы, происходят несчастные случаи: например, мы собираемся поесть, все -нить, а еда на столе является общим ресурсом. Увидел цель, когда я увидел его, я внезапно ~~~ Куриные ножки исчезли, и нить ближе к тарелке с гордостью держала ее.
Чтобы избежать возникновения вышеуказанных проблем, Java предоставляет нам «синхронизированный модификатор (синхронизация)», чтобы избежать конфликта ресурсов. Замок машины (блокировка), которая присутствует на всю оставшуюся жизнь и не нужно писать какой -либо код, чтобы включить его. Когда мы называем какую -либо синхронизированную функцию, объект будет заблокирован, и все синхронизированные функции в объекте не могут быть вызваны до тех пор, пока не будет выполнена первая функция, а блокировка не будет разблокирована.
Импорт Java.awt. Javax.swing.jtextarea; Счет, сумма банковского депозита отображается по сумме банковского депозита для отображения частного XTAREA TextAREA = NULL; Банк снятия интерфейса*/ public testmain5 () {super ("Тест синхронизации потока"); = new jtextarea (); («Часовой башня», Myaccounts, Bank.dea l_saving, 800); Myaccounts, Bank.deal_fetch, 200); «Tugen Sub -Branch», Myaccounts, Bank.deal_feth, 700);}); spd (spd (sp); .exit_on_close); Особенности*/ Class Bank Extends Thread {/ *** Статическое поле: оно используется для указания хранилища*/ public static infiny в degining_saving = 0;/ *** Статическое поле: используется для обозначения извлечения*/ public Статический финал. * @Param MyAccounts Мой банковский счет* @param Поведение, справочное поле: Dead_saving или Defer_fetch* @param Count Money Number*/ Public Bank (String name, Myaccounts myaccounts, в t buy, int count) {super (имя); . Депозитный бизнес $ count = myaccounts.saving (count);} else if (buy == bankal_fetch) {// Если это снятие бизнеса $ count = myaccounts.fetch (count);} text.settext (Integer.tostring ($ count );); = 1100; После завершения* / public int saving (int c) {синхронизированный (count) {// return count += c; Сначала проверьте депозит в счете $ count += c; {ex.printstacktrace ();} count = $ count; {Синхронизированный (count) {// return countt -= c; c; Последний номер депозита}} public static void main (string [] args) {new TestMain5 ();}}Есть надежда, что эта статья полезна для дизайна программы Java каждого.