import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /*银行有一个账户。有两个储户分别向同一个账户存3000元,每次存1000,存3次。每次存完打印账户余额。注意:效果要是交替打印!(多线程实现)*/ class cun implements Runnable{ int sum=0; int a = 0; int b =0; Lock loc = new ReentrantLock(); static boolean bool=true; public void run(){ for(int i=1;i<=6;i++){ synchronized(this){ notify();//先唤醒另一个线程 try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(sum<6000){ sum+=1000; if(Thread.currentThread().getName().equals("账户一")){ a+=1000; System.out.println(Thread.currentThread().getName()+"目前存了"+a); }else{ b+=1000; System.out.println(Thread.currentThread().getName()+"目前存了"+b); } System.out.println("目前余额"+sum); try { wait();//打印完后等待下一次被唤醒 } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } } public class Test { public static void main(String[] args) { cun c = new cun(); Thread t1 = new Thread(c,"账户一"); Thread t2 = new Thread(c,"账户二"); t1.start(); t2.start(); } }
银行有一个账户。有两个储户分别向同一个账户存3000元,每次存1000,存3次。每次存完打印账户余额。效果要是交替打印!
最新推荐文章于 2021-01-29 23:01:21 发布