线程通信实现输出数字以及对应字母

来源:互联网 发布:淘宝修改手机绑定 编辑:程序博客网 时间:2024/06/07 04:41
package demo02;


public class Print {
boolean flag ;




public synchronized void number() {
for (int i = 1; i <= 26; i++) {
if(flag ==true){
try {
wait();
} catch (InterruptedException e) {

e.printStackTrace();
}
}
flag =true;

System.out.print(i+" :");


this.notify();


}



}


public synchronized void leter() {
for (int i = 'a'; i <= 'z'; i++) {
if(flag ==false){
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
flag=false;
System.out.println((char)i);
this.notify();




}


}


}

//测试类

package demo02;



public class TestPrint {
public static void main(String[] args) {
Print print = new Print();
Number num = new Number(print);

Leter let = new Leter(print);
new Thread(num).start();

new Thread(let).start();


}


}


class Number implements Runnable {
private Print print;


public Number(Print print) {


this.print = print;
}


@Override
public void run() {
print.number();


}


}


class Leter implements Runnable {


private Print print;


public Leter(Print print) {


this.print = print;
}


@Override
public void run() {
print.leter();


}


}
0 0
原创粉丝点击