Java练习题(四)

来源:互联网 发布:吉利汽车销售数据 编辑:程序博客网 时间:2024/05/17 09:22

实现两个线程,一个线程打印1-52,另一个线程打印A-Z,要求输出的结果:

  1 2 A 3 4 B 5 6 C 7 8 D 9 10 1112 ...  52 E F G H I J K ...  X Y Z

package cn.edu.zzti.thread;/** * @author  * @version  * @date  * 打印1-52 */public class Thread52 extends Thread {private Object object;public Thread52(Object object){this.object = object;}@Overridepublic void run(){synchronized (object) {for(int i = 1;i <= 52;i++){System.out.print(i+" ");if(i <= 8 && i%2 == 0){//如果i小于等于8切是偶数object.notifyAll();//唤醒其他线程try {object.wait();//进入等待} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(i == 52){//如果i等于52,唤醒其他进程object.notifyAll();}}}}}

package cn.edu.zzti.thread;/** * @author  * @version  * @date  * 打印A-Z, */public class ThreadAZ extends Thread {private Object object;public ThreadAZ(Object object){this.object = object;}@Overridepublic void run(){synchronized (object) {for(char i= 'A';i <= 'Z';i++){//输出A~ZSystem.out.print(i+" ");object.notifyAll();//唤醒其他进程try {if(i <= 'D'){//如果i小于'D',进入等待object.wait();}} catch (InterruptedException e) {// TODO: handle exceptione.printStackTrace();}}}}}

package cn.edu.zzti.thread;/** * @author  * @version  * @date  * 实现两个线程,一个线程打印1-52,另一个线程打印A-Z,要求输出的结果: * 1 2 A 3 4 B 5 6 C 7 8 D 9 10 11 12 ...  52 E F G H I J K ...  X Y Z */public class TestTwo {public static void main(String[] args) {// TODO Auto-generated method stubObject object = new Object();//实例1~52Thread thread52 = new Thread52(object);//实例A-Z线程,继承ThreadThread threadAZ = new ThreadAZ(object);thread52.start();//启动线程threadAZ.start();//启动线程}}


0 0
原创粉丝点击