本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。
答案:
这是qklbishe.com第6335 篇笔试面试资料
提供答案分析,通过本文《建立三个线程A、B、C,A线程打印10次字母A,B线程打印10次字母B,C线程打印10次字母C,但是要求三个线程同时运行,并且实现交替打印,即按照ABCABCABC的顺序打印。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。
答案:
建立三个线程A、B、C,A线程打印10次字母A,B线程打印10次字母B,C线程打印10次字母C,但是要求三个线程同时运行,并且实现交替打印,即按照ABCABCABC的顺序打印。

@Data static class Test implements Runnable { private static Integer totalNum = 0; private static String[] order; private Integer printTimes; private String name; public Test(String name, Integer printTimes) { this.name = name; this.printTimes = printTimes; } @Override public void run() { int startNum = 1; while (startNum <= printTimes) { if (currentName(totalNum).equals(name)) { System.out.print(name); startNum++; totalNum++; try { Thread.sleep(5); } catch (InterruptedException e) { e.printStackTrace(); break; } } } } public String currentName(Integer totalNum) { return order[totalNum % order.length]; } } public static void main(String[] args) { Test.order = new String[]{"A", "B", "C"}; new Thread(new Test("A", 10)).start(); new Thread(new Test("B", 10)).start(); new Thread(new Test("C", 10)).start(); }
今天 11:36:41 回复(0)
文章部分来自互联网,侵权联系删除
www.qklbishe.com