`

[简单的]事件机制编程模型

阅读更多

 

class EventThread extends Thread {

private final LinkedBlockingQueue<Event> waitingEvents = new LinkedBlockingQueue<Event>();

private volatile boolean wasKilled = false;

 

EventThread() {

super("EventThread");

setDaemon(true);

}

 

public void queueEventOfDeath() {

waitingEvents.add(deathEvent);//自定义的终止Event,可选的

}

 

public void queueEvent(Event e) {

waitingEvents.add(e);

}

 

@Override

public void run() {

try {

while (true) {

Event event = waitingEvents.take();

if (event == deathEvent) {

wasKilled = true;

} else {

processEvent(event);

}

if (wasKilled)

synchronized (waitingEvents) {

if (waitingEvents.isEmpty()) {

break;

}

}

}

} catch (InterruptedException e) {

logger.info("Event thread exiting due to interruption" + e);

}

logger.info("EventThread shut down");

}

 

private void processEvent(Event e) {

//这里加入事件处理的内容。

}

public void stopEventThread(){

wasKilled=true;

}

}

分享到:
评论

相关推荐

    几种网络编程模型-小练习

    4. **异步非阻塞模型(事件驱动/IO多路复用)**:这是最高效的网络编程模型之一,常用于高并发服务器。在这种模型中,线程不会因等待IO操作而被阻塞,而是通过事件循环(如epoll、kqueue或select)监控多个连接。当...

    事件驱动模型实例详解(Java篇)

    事件驱动模型是现代软件开发中一种关键的编程模式,尤其在图形用户界面(GUI)编程中占据核心地位。该模型围绕三个核心概念构建:事件源、侦听器以及事件处理程序。事件源可以是任何能产生事件的对象,例如用户界面...

    传统BIO编程模型及NIO编程模型源码

    3. **复杂性**:NIO的编程模型相对复杂,需要理解和处理选择器、通道、缓冲区等概念,而BIO则相对简单。 **NIO的实际应用:** Netty是一个基于NIO的高性能、异步事件驱动的网络应用程序框架,它简化了网络编程,...

    VC网络编程模型示例 - WSAEventSelect

    **VC网络编程模型示例 - WSAEventSelect** 在Windows Socket API (Winsock)中,`WSAEventSelect`是一个重要的函数,它允许程序通过事件对象(如Windows事件或I/O完成端口)来处理网络事件。这个模型在Visual C++...

    python模拟事件触发机制详解

    Python中的事件触发机制是一种设计模式,它允许程序在特定事件发生时执行相应的处理函数。...不过,这种模拟方法可能不如专门的事件库高效,但在某些场景下,它提供了一种简单的方式来实现事件驱动的编程模型。

    Java GUI编程中的事件处理机制详细讲解 (1)

    下面通过一个简单的示例来展示如何在Java GUI编程中使用事件处理机制。 ```java public class ButtonActionEvent extends Applet implements ActionListener, MouseMotionListener, MouseListener { public void...

    windows游戏编程 第二章 windows编程模型 实例

    总之,"第二章 Windows编程模型"涵盖了Windows编程的基础知识,包括窗口类的创建、消息机制的运用以及GDI的图形绘制。通过实例学习,你将逐步掌握如何使用Windows API构建游戏或者其他交互式应用程序。在实际操作中...

    多线程服务器的常用编程模型.zip

    本压缩包“多线程服务器的常用编程模型.zip”包含了关于这一主题的详细资料,特别是“多线程服务器的常用编程模型.pdf”,它将深入探讨如何设计和实现这种服务器模型。 首先,我们需要了解什么是多线程。在计算机...

    新型并发编程模型.pptx

    ### 新型并发编程模型知识点详解 #### 一、并发编程模型概述 1. **定义与分类**: - **定义**:并发编程模型是指在计算机系统中,同一时间段内能够处理多个任务或请求的能力。 - **分类**: - **按任务调度方式...

    并发编程模型演进

    - **简化编程模型**:协程的显式控制机制使得并发编程更加简单直观。 然而,协程也有一些局限性: - **不适用于多核环境**:协程本身不具备跨核心迁移的能力,但在实际应用中可以通过多进程的方式来解决这个问题。 ...

    网络编程模型综述.doc

    【网络编程模型综述】 网络编程模型是设计和实现网络应用程序的关键部分,它们决定了如何高效地处理输入/输出(I/O)操作。本篇将概述几种主要的网络编程模型,包括在UNIX和Windows操作系统中的应用。 1. **UNIX...

    Linux设备驱动编程模型之上层容器篇.docx

    本篇章概述了 Linux 设备驱动编程模型中的上层容器,即统一设备模型(device model),它提供了一个独立的机制来表示设备,并描述其在系统中的拓扑结构。 统一设备模型的优点包括: 1. 代码重复最小化:统一设备...

    Mapreduce并行编程模型研究

    ### MapReduce并行编程模型研究 #### 摘要与背景 MapReduce作为一种高效的数据处理框架,被广泛应用于大规模数据集的处理上。它通过提供简单而强大的编程接口,简化了分布式并行编程的复杂性,使开发人员能够专注...

    分布式并行编程模型MapReduce及其应用研究.pdf

    分布式并行编程模型MapReduce是针对大数据处理提出的一种编程模型,它解决了传统并行编程模型在数据处理、任务分配、单点故障处理等方面的困难。在传统模型中,程序员需要进行大量的程序分析和设计工作,实现并行...

    TBB多核编程及其混合编程模型的研究

    ### TBB多核编程及其混合编程模型的研究 #### 摘要 随着多核处理器的广泛应用,提升每个CPU核心的利用率成为了当前计算机科学领域的重要课题。本文探讨了TBB(Threading Building Blocks)作为一种新兴的多核并行...

    提取redis事件机制源码为我所用

    这涉及到C语言编程、源码分析以及对Redis事件模型的理解。 Redis事件机制主要基于libevent库,它采用了IO多路复用技术,如epoll(Linux)、kqueue(FreeBSD)或poll,来高效地监听和处理大量连接。事件分为读事件和...

    SD大会精品讲座:Elastos操作系统支持“应用=XML脚本+构件”编程模型

    本文将深入探讨这一模型的核心理念及其实现机制,并以Elastos操作系统为例,介绍其如何支持这一编程模型。 #### 二、“应用=XML脚本+构件”编程模型概述 “应用=XML脚本+构件”的概念源于对现有软件开发方式的反思...

    深度学习注意力机制单元(基于Python编程语言实现)

    在本项目中,我们将探讨如何在Python编程环境下实现这种机制,并将其应用于深度学习回归模型预测中。 首先,我们要理解注意力机制的基本概念。传统的神经网络通常处理整个输入序列,但注意力机制允许模型动态地为每...

    事件选择模型经典源码

    事件选择模型是网络编程中的重要概念,特别是在设计高性能、高并发的Socket服务器时不可或缺。它允许服务器在同一时间处理多个连接,提高系统资源利用率并优化服务响应速度。在本压缩包中,"可伸缩的范例"可能包含了...

Global site tag (gtag.js) - Google Analytics