Java多线程打印输出12a34b56c78d910e1112f…5152z
/**
使用两个线程
1个线程打印1~52
1个线程打印a~z
要求:打印输出结果为12a34b56c78d910e1112f....5152z
*/
public class Main {
public static void main(String[] args) {
//创建锁对象
String lock = "锁子";
//创建打印字母的线程对象以及线程任务
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 97; i < 123; i++) {
//同步代码块
synchronized (lock) {
try {
//休眠当前线程
lock.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//不换行并转换成char类型输出
System.out.print((char)i);
//唤醒打印数字线程
lock.notify();
}
}
}
//启动线程
}).start();
//创建打印数字的线程对象以及线程任务
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 1; i < 53; i++) {
//同步代码块
synchronized (lock) {
System.out.print(i);
//判断是不偶数
if (i%2==0) {
//唤醒打印字母线程
lock.notify();
try {
//休眠当前线程
lock.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
//启动当前线程
}).start();
}
}