题解 | #多线程打印#
多线程打印
https://www.nowcoder.com/practice/835d678e89a848508389c462e5173252
import java.util.concurrent.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
final Semaphore numS = new Semaphore(1);
final Semaphore letterS = new Semaphore(0);
Thread numThread = new Thread() {
int i = 1;
@Override
public void run() {
while (i <= 52) {
try {
numS.acquire();
System.out.print(i);
i++;
System.out.print(i);
i++;
letterS.release();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
};
Thread letterThread = new Thread() {
char letter = 'A';
@Override
public void run() {
while (letter <= 'Z') {
try {
letterS.acquire();
System.out.print(letter);
letter += 1;
System.out.print(" ");
numS.release();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
};
numThread.start();
letterThread.start();
}
}
查看4道真题和解析
