其实这是一道Java笔试题:现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志
要求:程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些日志对象
上述要求,主要是考察应聘者对队列和多线程两方面的综合理解和运用!
实现如下:import java.util.concurrent.ArrayBlockingQueue;
/**
* 现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志
*
* 要求实现功能:
* 请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些日志对象
*
* @author thinker
*/
public class MultiThreadPrintLogDemo
{
private static boolean bFlag;
private static long t1, t2;
// 线程安全的日志队列【Add】
private static ArrayBlockingQueue logQueue = new ArrayBlockingQueue(16);
public static void main(String[] args)
{
// 四个线程处理16个日志对象【Add】
t1 = System.currentTimeMillis();
for (int i = 0; i
{