今天在群里面看到一个很有意思的面试题:
“编写两个线程,一个线程打印1~25,另一个线程打印字母A~Z,打印顺序为12A34B56C……5152Z,要求使用线程间的通信。”
这是一道非常好的面试题,非常能彰显被面者关于多线程的功力,一下子就勾起了我的兴趣。这里抛砖引玉,给出7种想到的解法。
通用代码:
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * Created by Edison Xu on 2017/3/2. */ public enum Helper { instance; private static final ExecutorService tPool = Executors.newFixedThreadPool(2); public static String[] buildNoArr(int max) { String[] noArr = new String[max]; for(int i=0;i