1. 程式人生 > >Java兩個執行緒交替列印(實現Runnable介面)

Java兩個執行緒交替列印(實現Runnable介面)

package senTset;
//紙張類
public class page  {
    private boolean isWrite = false; //設定一個公共變數來控制執行緒執行

     public synchronized void write1() {
            while(isWrite) {   // 公共變數為true時等待
                try {
                    wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

            System.out.print("中"
); isWrite = true; notify(); // 喚醒列印“國”的執行緒 } public synchronized void write2() { while (!isWrite) { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.print("國"
); isWrite = false; notify(); // 喚醒列印“中”的執行緒 } //小紅寫字 static class xhWrite implements Runnable{ private page page; public xhWrite( page page) { this.page = page; } @Override public
void run() { for(int i = 0; i < 10; i++) { page.write1(); } } } //小明寫字 static class xmWrite implements Runnable{ private page page; public xmWrite( page page) { this.page = page; } @Override public void run() { for(int i = 0; i < 10; i++) { page.write2(); } } } public static void main(String[] args) { page p = new page();//小明和小紅共用一張紙 xmWrite xm = new xmWrite(p); xhWrite xh = new xhWrite(p); Thread t1=new Thread(xm); Thread t2=new Thread(xh); t1.start(); t2.start(); } }

就是這樣,如果有什麼不對的地方希望大家指出