標籤:pre new t read system div wait out static todo
//進水class Inflow implements Runnable{//水對象Water wat;public Inflow(Water w){this.wat = w;}@Overridepublic void run() {//進水while (true) {synchronized (wat) {while (true) {if (wat.count >= 50) {wat.notify();try {wat.wait();} catch (InterruptedException e) {e.printStackTrace();}}try {//睡眠線程Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}wat.count++;System.out.println("現在是在進水,水量為:" + wat.count);}}}}}//出水class Outflow implements Runnable{Water wat;public Outflow(Water w){this.wat = w;}@Overridepublic void run() {//出水while (true) {//線程鎖synchronized (wat) {while (true) {if (wat.count <= 0) {wat.notify();try {wat.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}wat.count--;System.out.println("現在是在放水,剩餘水量為:" + wat.count);}}}}}class Water{int count = 50;}public class demo5 {public static void main(String[] args) {//建立水對象Water Water = new Water();//進水對象Inflow in = new Inflow(Water);//放水對象Outflow out = new Outflow(Water);//Thread thread = new Thread(in);Thread the = new Thread(out);//開啟線程thread.start();the.start();}}
java中用線程解決進出水問題