java线程通讯

来源:互联网 发布:python pip twisted 编辑:程序博客网 时间:2024/05/22 05:21

package com.ljh.test;

public class Main {
    public static void main(String[] args) {
        Demo demo = new Demo();
        Thread t1 = new Thread(demo);
        Thread t2 = new Thread(demo,"=================");
        t1.start();
        t2.start();
    }
}

class Demo implements Runnable {
    private Boolean flag = true;

    public void run() {
        while (true) {
            if (flag)
                try {
                    five();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            else
                try {
                    ten();
                } catch (Exception e) {
                    e.printStackTrace();
                }
        }
    }
    public synchronized void five() throws Exception {
        if (flag) {
            Thread.sleep(200);
            for (int i = 1; i <= 5; i++) {
                System.out.println(Thread.currentThread().getName() + "    第i "
                        + i + "次");
            }
            flag = false;
            this.notify();
            this.wait();
        }
    }

    public synchronized void ten() throws Exception {
        if (!flag) {
            Thread.sleep(200);
            for (int j = 1; j <= 10; j++) {
                System.out.println(Thread.currentThread().getName() + "    第j "
                        + j + "次");
            }
            flag = true;
            this.notify();
            this.wait();
        }
    }
}

原创粉丝点击