专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java 消息队列的简单实现(java如何实现消息队列的监听)

temp10 2024-09-08 09:40:06 java教程 9 ℃ 0 评论

今天被小伙伴问到怎么用Java实现消息队列。这种实现的例子其实CSDN或者度娘其实一大堆。

先说说队列的一个场景,假设你的服务器只能扛50个请求。但是某一时刻的峰值服务器收到了2000个请求。这时候你就需要把它做成队列来处理了,然后根据先进先出的顺序来处理。

Java 消息队列的简单实现(java如何实现消息队列的监听)

这里我们使用LinkedList来实现。看下面的代码

import java.util.LinkedList;

public class MyQueue<T> {
    private final LinkedList<T> queue=new LinkedList<>();

    public synchronized void push(T e){
        queue.addFirst(e);
    }

    public T peek(){
        return queue.getLast();
    }

    public void pop(){
        queue.removeLast();
    }

    public boolean empty(){
        return !queue.isEmpty();
    }

    @Override
    public String toString(){
        return queue.toString();
    }
}

然后我们写一个测试类。我们构建一个场景,我们给一个字符串,比如 “这是一个先进先出的队列”,然后我们把这个字符串切割成单个字符,每个字符后面接一个星号和原字符串区别开。

public class QueueTest {
    public static void main(String[] args) {
        MyQueue<String> queue=new MyQueue<>();

        for(char s:"这是一个先进先出的队列".toCharArray()){
            queue.push(String.valueOf(s));
        }

        while (queue.empty()){
            System.out.print(queue.peek()+"*");
            queue.pop();
        }
    }
}

最后看一下执行效果。

至此,队列实现了。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表