2つのスレッドを書き、1つのスレッドは1~52を印刷し、もう1つのスレッドはアルファベットA-Zを印刷します.印刷順序は12 A 34 B 56 C……5152 Z
1937 ワード
package threaddemo;
/**
*
*
* @author snowday88
*/
public class ThreadDemo
{
//
public static void main(String[] args) throws Exception
{
Object obj = new Object();
//
Thread1 t1 = new Thread1(obj);
Thread2 t2 = new Thread2(obj);
t1.start();
t2.start();
}
}
// 1-52
class Thread1 extends Thread
{
private Object obj;
public Thread1(Object obj)
{
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(Object obj)
{
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();
}
}
}
}
}