一道网上流传的Google的多线程面试题的Java实现
逛论坛的看到一个疑似Google的多线程面试题,觉得挺好玩的,思考了一下。题目如下:?
?? ? ?启动4个线程,向4个文件A,B,C,D里写入数据,每个线程只能写一个值。?
?? ? ? 线程1:只写1?
?? ? ? 线程2:只写2?
?? ? ? 线程3:只写3?
?? ? ? 线程4:只写4?
?? ? ? 4个文件A,B,C,D。?
?? ? ? 程序运行起来,4个文件的写入结果如下:?
?? ? ? A:12341234...?
?? ? ? B:23412341...?
?? ? ? C:34123412...?
?? ? ? D:41234123...?
?
?? ? 经过分析线程1,2,3,4和文件A,B,C,D的规律,可以发现:对于文件A,如果有这样一个计数器Count,当Count%4 = 1的时候,线程1可以写入1,当Count%4 = 2的时候,线程2可以写入2,当Count%4 = 3的时候,线程3可以写入3,当Count%4 = 0的时候,线程4可以写入4。对于文件B,C,D亦如此。则可以得出以下代码:
?