队列BlockingQueue的简单例子

队列,当进行多线程编程的时候,很多时候可能会用到,队列是先进先出的,我们可以将要执行的任务放置在队列内缓存起来,当线程池中线程可以使用的时候,我们就从队列中获取一个任务执行。。

当前是一个队列的简单例子。

 

复制代码
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();
        }
    }

}
复制代码

 

posted on   陈惟鲜的博客  阅读(480)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示