题解 | #多线程打印#
多线程打印
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(); } }