写两个线程,一个线程打印1-52,另…

来源:互联网 发布:数据结构算法pdf百度云 编辑:程序博客网 时间:2024/05/20 13:40

Java--写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z

2012-09-2401:29:42| 分类: 默认分类 |标签:java|举报 |字号 订阅

public classThreadDemo
{
// 测试
public static voidmain(String[] args) throws Exception
{
Objectobj = new Object();
//启动两个线程
Thread1t1 = new Thread1(obj);

Thread2t2 = new Thread2(obj);

t1.start();
t2.start();
}

}

// 一个线程打印1-52
class Thread1 extends Thread
{
private Object obj;

public Thread1(Objectobj)
{
this.obj= obj;
}

public void run()
{
synchronized(obj)
{
//打印1-52
for(int i = 1; i <53; i++)
{
System.out.print(i+ " ");
if(i % 2 == 0)
{
//不能忘了 唤醒其它线程
obj.notifyAll();
try
{
obj.wait();
}
catch(InterruptedException e)
{
e.printStackTrace();
}
}
}
}

}

}

// 另一个线程打印字母A-Z
class Thread2 extends Thread
{
private Object obj;

public Thread2(Objectobj)
{
this.obj= obj;
}

public void run()
{
synchronized(obj)
{
//打印A-Z
for(int i = 0; i <26; i++)
{
System.out.print((char)('A'+ i) + " ");
//不能忘了 唤醒其它线程
obj.notifyAll();
try
{
//最后一个就不要等了
if(i != 25)
{
obj.wait();
}
}
catch(InterruptedException e)
{
e.printStackTrace();
}

}

}
}

}
0 0
原创粉丝点击