队列,当进行多线程编程的时候,很多时候可能会用到,队列是先进先出的,我们可以将要执行的任务放置在队列内缓存起来,当线程池中线程可以使用的时候,我们就从队列中获取一个任务执行。。
当前是一个队列的简单例子。
package com.chen.queue; import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue; public class QueueTest
{ /** 测试队列、先进先出
* @author : EX-CHENWEIXIAN001 陈惟鲜
* @create_date :2014-6-6 下午03:33:39
* @param args
*/
public static void main(String[] args)
{
try
{
// 常用创建队列方式
BlockingQueue<Map> blockingQueue = new LinkedBlockingQueue<Map>();
Random random = new Random();// 随机函数
for (int i = 0; i < 5; i++)
{
Map tempMap = new HashMap();
tempMap.put("key" + i, random.nextInt(100)); // 创建队列map
blockingQueue.add(tempMap);// 给队列添加信息
}
// 队列大小
int blockingQueueSize = blockingQueue.size();
System.out.println("=========================");
System.out.println(blockingQueueSize);
System.out.println(blockingQueue); // 队列内容
System.out.println("=========================");
for (int i = 0; i < blockingQueueSize; i++)
{
System.out.println(i+"===++++++++++===");
Map tempMap = blockingQueue.take();// 取出队列值,取一次,就从队列中移除
System.out.println(tempMap); // 打印内容
// 打印队列是否还有东西
System.out.println(blockingQueue);
}
System.out.println("=========game over================");
} catch (Exception e)
{
e.printStackTrace();
}
} }