读书人

JAVA 多线程二

发布时间: 2012-10-12 10:17:04 作者: rapoo

JAVA 多线程2

package com.test;public class ThreadTest2{public static void main(String[] args){Bizs biz = new Bizs();ThreadAdd add1 = new ThreadAdd(biz);ThreadAdd add2 = new ThreadAdd(biz);ThreadSub sub1 = new ThreadSub(biz);ThreadSub sub2 = new ThreadSub(biz);sub1.start();sub2.start();add1.start();add2.start();}}class ThreadAdd extends Thread{private Bizs biz;public ThreadAdd(Bizs biz){this.biz = biz;}@Overridepublic void run(){for (int i = 0; i < 100; i++){try{Thread.sleep(100);}catch (InterruptedException e){e.printStackTrace();}biz.add();}}}class ThreadSub extends Thread{private Bizs biz;public ThreadSub(Bizs biz){this.biz = biz;}@Overridepublic void run(){for (int i = 0; i < 100; i++){try{Thread.sleep(100);}catch (InterruptedException e){e.printStackTrace();}biz.sub();}}}class Bizs{private int j = 0;public synchronized void add(){while(j > 0){try{this.wait();}catch (InterruptedException e){e.printStackTrace();}}System.out.println(++j);this.notifyAll();}public synchronized void sub(){while(j <= 0){try{this.wait();}catch (InterruptedException e){e.printStackTrace();}}System.out.println(--j);this.notifyAll();}}

读书人网 >编程

热点推荐