Почему я получаю нерегулярный выход?
package core; public class MT3 { public static void main(String args[]) { Account acc1 = new Account(); // Account acc2 = new Account(); AThread ath1 = new AThread(acc1, "A"); BThread ath2 = new BThread(acc1, "B"); } } class Account{ public synchronized void withdraw() { for (int i = 0; i<5; i++) { System.out.println("Withdraw \t:"+Thread.currentThread().getName()); try { Thread.sleep(500); }catch(Exception e) { e.printStackTrace(); } } } void deposite(){ for (int i=0;i<5;i++) { System.out.println("Deposite \t:"+Thread.currentThread().getName()); try { Thread.sleep(500); }catch(Exception e) { e.printStackTrace(); } } } } class AThread implements Runnable{ Account acc; public AThread(Account acc, String tname) { this.acc=acc; Thread t1 = new Thread(this,tname); t1.start(); } public void run() { acc.withdraw(); } } class BThread implements Runnable{ Account acc; public BThread(Account acc, String tname) { this.acc=acc; Thread t2 = new Thread(this,tname); t2.start(); } public void run() { acc.deposite(); } }
Что я уже пробовал:
Я использую один объект, и метод вывода-это синхронизация, я не могу понять причину нерегулярного вывода.