`
cuishen
  • 浏览: 297826 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java单线程实现队列模型

    博客分类:
  • j2se
阅读更多
以下是我整理的用java单线程实现队列Queue的代码模型。

package com.cuishen;

import java.util.Vector;

public class Queue implements Runnable {
    private Vector queueData = null;
    private boolean run = true;

    public Queue() {
        queueData = new Vector();
    }

    public synchronized void putEvent(Object obj) {
        queueData.addElement(obj);
        notify();
    }

    private synchronized Object getEvent() {
        try {
            return (Object) queueData.remove(0);
        } catch (ArrayIndexOutOfBoundsException aEx) {
        }
        try {
            wait();
        } catch (InterruptedException e) {
            if (run) {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public void run() {
        while (run) {
            Object obj = getEvent();
            processEvent(obj);
        }
    }

    private void processEvent(Object obj) {
        // process the data in queue
    }

    public synchronized void destroy() {
        run = false;
        queueData = null;
        notify();
    }
}


package com.cuishen;

public class Test {
    public static void main(String[] args) {
        Queue queue = new Queue();
        Thread processThread = new Thread(queue);
        processThread.start();
        
        Object obj = new Object();
        queue.putEvent(obj);
    }
}


0
1
分享到:
评论

相关推荐

    实验三 消息中间件应用开发:ActiveMQ实现单线程多队列

    总之,这个实验旨在通过实际操作,使学习者深入了解消息中间件的实用价值,掌握ActiveMQ的基本操作,以及如何在Java环境中实现单线程处理多队列的高效通信模式。在完成实验后,学习者应具备设计和实现基于ActiveMQ的...

    kafka java单线程,多线程,多线程管理器代码

    总的来说,理解和掌握Kafka的Java单线程和多线程编程是构建高性能、可扩展的数据处理系统的基石。通过有效的线程管理和优化,我们可以充分利用Kafka的潜力,处理大规模的实时数据流。在实践中,要根据业务场景灵活...

    Java多线程示例之线程控制

    在Java编程中,多线程是一种常见的并发处理方式,它能充分利用CPU资源,提高程序的执行效率。本示例主要探讨了如何通过两种方法来控制Java中的线程数量,以达到优化性能和防止内存不足的目的。 首先,我们来看...

    20_来聊聊redis的线程模型吧?为啥单线程还能有很高的效率?.zip

    Redis是一款高性能的键值存储...总的来说,Redis的单线程模型通过I/O多路复用技术和内存存储机制,实现了高性能的键值存储服务。对于Java开发者来说,理解和掌握这种模型有助于更好地利用Redis来优化应用程序的性能。

    java多线程详解(比较详细的阐述了多线程机制)

    生产者消费者模型是一种常见的线程间协作模式,通过BlockingQueue实现,生产者线程向队列中添加元素,消费者线程从队列中取出元素。还有读者写者模式,允许多个读者同时读取资源,但只允许一个写者进行修改,可以...

    java多线程设计模式详解(PDF及源码).zip

    在这个主题中,我们将深入探讨单线程、生产者与消费者模型以及Java中实现多线程的各种方法。 首先,单线程是程序执行的基本单位。在Java中,每个线程都有自己的程序计数器、虚拟机栈、本地方法栈和一部分堆内存。单...

    java多线程编程

    在单线程环境中,程序按照顺序执行任务,而在多线程环境中,可以同时执行多个任务,每个任务被称为一个线程。Java通过`Thread`类和`Runnable`接口提供了对多线程的支持。创建线程有两种方式:继承`Thread`类或实现`...

    Java多线程编程总结

    #### 三、Java线程:线程栈模型与线程的变量 1. **线程栈模型** - 每个线程都有自己的调用栈,用于存储方法调用信息。 - 线程栈的大小可以在创建线程时指定,默认大小根据JVM实现而异。 - 线程栈中的局部变量只...

    三个分别由单线程 多线程 线程池实现的简单网关

    标题中的“三个分别由单线程、多线程、线程池实现的简单网关”涉及到的是并发处理的三种常见模型。在IT行业中,尤其是在服务器端编程和高性能系统设计中,如何有效地处理并发请求是至关重要的。让我们逐一探讨这三个...

    详细剖析JAVA多线程案例教学

    Java中可以通过队列、锁等工具来实现这一模式。 - **示例代码**: ```java class ProducerConsumer { private final Queue<Integer> queue = new ArrayBlockingQueue(10); public void producer() throws ...

    第15讲 Java多线程.ppt

    * Java的调度方法采用同优先级线程组成先进先出队列,使用时间片策略,对高优先级线程使用优先调度的抢占式策略。 Java线程模型: * 线程是虚拟的CPU,由java.lang.Thread类封装和虚拟CPU来实现。 * CPU所执行的...

    java多线程设计模式_java_设计模式_多线程_多线程课题_

    Java的BlockingQueue接口及其实现(如ArrayBlockingQueue)非常适合实现这种模式,它们提供了线程安全的队列,生产者可以将数据放入队列,消费者则从中取出。 五、读写锁 在多线程环境中,有时读操作比写操作更频繁...

    Java多线程结构_Java多线程结构_

    在Java中,实现多线程主要有两种方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当自定义类继承Thread类时,你需要重写它的`run()`方法。创建线程实例后,调用`start()`方法启动线程。`start()`会调用...

    java 多线程编程指南

    最后,Java内存模型(JMM)规定了线程之间如何共享和访问内存,理解JMM对于理解并发编程中的可见性、原子性和有序性问题至关重要。 总之,“Java多线程编程指南”将涵盖这些核心概念,并可能深入到高级话题,如...

    actor模型java实现源码

    2. **Java中的并发编程**:了解Java提供的并发工具,如线程、ExecutorService、Future等,以及它们如何在Actor模型中被利用。 3. **消息队列和异步处理**:理解消息是如何在Actor之间传递的,以及如何实现非阻塞的...

    乘客打车和司机抢单的Java实现.zip

    2. **多线程**:乘客打车和司机抢单的过程涉及到并发操作,因此项目中很可能使用了Java的多线程技术。可能使用了Thread类、Runnable接口,或者更高级的ExecutorService、Future等并发工具来实现并发执行,以保证乘客...

    Java多线程文件下载

    Java提供了一个强大的线程模型,通过`java.lang.Thread`类或实现`Runnable`接口来创建线程。在多线程下载中,每个线程负责下载文件的一个部分。我们需要创建一个`DownloadThread`类,该类继承自`Thread`或实现`...

    java多线程文件传输

    - **Java线程实现方式**:通过实现`Runnable`接口或继承`Thread`类创建线程。推荐使用`Runnable`,因为它可以避免单继承的限制,更符合面向对象设计原则。 2. **多线程的创建与启动** - **创建线程**:创建`...

    深入浅出Java多线程.pdf

    - **Thread 类**:Java 中实现多线程的主要方式之一,继承自 Object 类,实现了 Runnable 接口。 - **Runnable 接口**:实现此接口以定义线程的任务,通常与 Thread 类结合使用。 - **Callable & Future**:提供了...

    顾客队列模拟系统(Java实现)

    【标题】"顾客队列模拟系统(Java实现)"是一个基于Java编程语言设计的应用程序,旨在模拟现实生活中顾客在银行、医院或超市等场所的排队情况。这个系统能够动态地处理柜台数量和顾客等待人数的变化,帮助理解并优化...

Global site tag (gtag.js) - Google Analytics