zoukankan      html  css  js  c++  java
  • java 中之经典多线程问题——进水放水

    public class ThreadInflowAndOutflow {

    public static void main(String[] args) {
    Water water=new Water();

    inflow fi=new inflow(water);
    outflow of=new outflow(water);

    Thread t1=new Thread(fi);
    Thread t2=new Thread(of);

    t1.start();
    t2.start();

    }

    }


    class Water{

    int count = 50;
    }
    class inflow implements Runnable{


    Water water;
    public inflow(Water water){
    this.water=water;
    }

    @Override
    public void run() {

    while(true){
    synchronized (water) {
    while(true){
    if(water.count>=20){
    water.notify();

    try {
    water.wait();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }

    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }

    water.count+=3;
    System.out.println("现在是在进水,水量为:"+water.count);
    }
    }
    }
    }

    }


    class outflow implements Runnable{

    Water water;
    public outflow(Water water){
    this.water=water;
    }


    @Override
    public void run() {

    while(true){
    synchronized (water) {
    while(true){
    if(water.count<=30){
    water.notify();

    try {
    water.wait();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }

    }

    try {
    Thread.sleep(1000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }

    water.count--;
    System.out.println("现在是放水,剩余水量为:"+water.count);
    }
    }
    }

    }

    }

  • 相关阅读:
    Nginx proxy开启cache缓存
    Nginx Server 配置
    nginx 全局配置
    Nginx 配置文件解析
    Python-Scrapy框架
    Python-shutil模块
    os模块3
    os模块
    python os模块atime ,ctime,mtime意义
    Python-正则表达式
  • 原文地址:https://www.cnblogs.com/1a2b/p/8919208.html
Copyright © 2011-2022 走看看