使用两个线程循环打印出1~100

创建一个Num类;

public class Num { int i=0; boolean falg=false; }

【使用两个线程循环打印出1~100】创建一个TestThread类:
需要注意,在A和B需要使用有参构造,使用同一个num,使得线程同步;
在wait()和notify()时,需要在前面加上num;不然会报程序运行异常。
public class TestThread { public static void main(String[] args) { Num num=new Num(); Thread t1=new Thread(new A(num)); Thread t2=new Thread(new B(num)); t1.start(); t2.start(); }} class B implements Runnable{ private Num num; B(Num num){ this.num=num; } @Override public void run() { while(num.i<99){ synchronized(num){if(!num.falg){ try { num.wait(); } catch (InterruptedException e) {} } num.i++; num.falg=false; System.out.println(num.i); num.notify(); } } } } class A implements Runnable{ private Num num; public A(Num num) { this.num=num; } @Override public void run() { while(num.i<99){ synchronized(num){ if(num.falg){ try { num.wait(); } catch (InterruptedException e) {} } num.i++; num.falg=true; System.out.println(num.i); num.notify(); } } } }

    推荐阅读