`
HenryYu
  • 浏览: 30061 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Beetle框架使用指南之--线程的简化编程模型

阅读更多

应用程序服务子框架的实现了一个简单的线程编程模型来简化传统的线程开发,主要提供了以下功能:
Ø线程自身的启动(常规启动或作为守护线程启动)、关闭(常规关闭或粗暴关闭)
Ø线程自动循环执行,无需手工构建循环逻辑(也可手工构建)
Ø支持线程结束事件
Ø支持线程运行时阻塞状态监控及线程重新拉起
其对外线程编程接口是AppThreadImp抽象类,参考下面的类图:

类图中相关方法的描述说明,请参考Java API文档。简单例子如下:

package example.appsrv;

import com.beetle.framework.appsrv.AppThreadImp;

public class SimpleThread extends AppThreadImp {

	public SimpleThread(int interval) {
		super(interval);
	}
	protected void workProc() {// 工作方法,会自动循环执行,间隔时间interval毫秒
		System.out.println(System.currentTimeMillis() + "-->do something...");
	}
	protected void end() {// 线程结束时,触发的事件
		System.out.println(System.currentTimeMillis() + "-->end");
	}
}

 编写执行客户端端,代码如下:

package example.appsrv;

public class TestClient {

	public static void main(String[] args) throws Throwable {
		SimpleThread st=new SimpleThread(2000);//2秒钟循环执行一次
		//st.joinThreadMonitor();//加入线程监控(若执行超时,监控器会将其重新拉起)
		//st.startAsDaemon();//以守护线程模式启动
		st.startNow();
		Thread.sleep(10000);
		//st.separateThreadMonitor();//脱离监控
		//st.stopBrutally();//粗暴结束线程
		st.stopNow();//停止线程
	}
}

 

执行代码:

package example.appsrv;

public class TestClient {

	public static void main(String[] args) throws Throwable {
		new SimpleThread(2000).startNow();
		Thread.sleep(10000);
	}
}

 

执行结果:

1235526856865-->do something...
1235526858866-->do something...
1235526860867-->do something...
1235526862868-->do something...
1235526864868-->do something...
1235526864868-->end

 

可见,相对传统的java线程编程,上面代码确实简便和简化不少。在我们应用服务程序框架中,图5-1中的功能子模块编程模型,对应就是AppThreadImp抽象类。功能模块具体指利用线程实现功能在后台长期执行;如果执行一次就结束,完成一个任务计算,在BJAF框架中,我们定义为子程序(SubRoutine),我们下一小节介绍。

  • 大小: 34.6 KB
  • 大小: 861 Bytes
1
0
分享到:
评论

相关推荐

    beetle框架

    Beetle J2ee Application Framework(BJAF)一个功能强大而简单易用的J2EE应用开发框架。它涵盖了J2EE体系结构的表示层、业务层和持久层,为构建一个可靠、高性能、可扩展、灵活缩放的高质量企业应用系统提供了一套...

    beetle 开源框架书的源码

    【标题】"beetle 开源框架书的源码"涉及的是一个名为"beetle"的开源框架的源代码,这通常意味着该框架可能是用于Java平台,因为J2EE(Java 2 Platform, Enterprise Edition)是Java领域广泛使用的开发企业级应用的...

    Beetle.JT808-master.zip_beetle_beetle c#_beetleX实现订阅_jt808_jt80

    标题中的"Beetle.JT808-master.zip"表明这是一个关于JT808协议的开源项目,由Beetle框架实现,且基于C#编程语言。Beetle是一个通用的通讯框架,而JT808则是一种广泛应用于中国GPS监控系统中的通信协议。这个项目可能...

    BJAF-SDK-2.2.4.rar

    BJAF(beetle-j2ee-application-framework)甲壳虫J2EE应用开发框架代码&开发指南 甲壳虫,一个功能强大而简单易用的J2EE应用开发框架。它涵盖了J2EE体系结构的表示层、业务层和持久层,为构建一个可靠、高性能、可...

    高并发量的TCP、UDP框架通信beetle.express.rar_Beetle.Express tls_TCP_UDP_ex

    已经成功应用于多个高并发量的TCP、UDP框架通信接口,

    Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码

    Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码Beetle....

    beetle类包含其他类

    在C#编程中,"Beetle"可能指的是一个自定义的框架或库,用于处理文件传输任务。这个框架可能是为了提高文件传输的效率而设计的。在标题中提到的"beetle类包含其他类",这暗示了Beetle可能是一个封装了多种功能的类库...

    德利多富(Wincor Nixdorf )BEETLE_XL_II收款机说明书

    本用户指南主要介绍了BEETLE_XL_II收款机的操作方法、维护保养以及常见问题解决办法等内容。它适用于所有BEETLE_XL_II系列产品的用户及技术支持人员。 #### 设备护理 - **日常清洁**:使用柔软干净的布料轻轻擦拭...

    图形化二级202209真题-全国青少年软件编程等级考试

    【图形化编程】是针对青少年进行的软件编程等级考试中的一种常见形式,它通常使用图形化的编程工具,如Scratch等,使得编程过程更为直观和易于理解。在202209年的全国青少年软件编程等级考试中,图形化二级考试主要...

    加长版甲壳虫汽车外壳3D图纸 solidworks2014设计.zip

    标题中的“加长版甲壳虫汽车外壳3D图纸”是指使用solidworks2014软件设计的一款经典甲壳虫汽车的加长版车型的三维模型。SolidWorks是一款广泛应用于机械设计领域的三维CAD(计算机辅助设计)软件,以其易用性和强大...

    c#_以Beetle为基础SOCKET服客端(WPF)与客户端(winphone\win8 metro)

    标题中的“c#_以Beetle为基础SOCKET服客端(WPF)与客户端(winphone\win8 metro)”指的是一个使用C#编程语言构建的网络通信应用,它基于Beetle框架,实现了SOCKET服务器端(WPF)以及Windows Phone和Windows 8 Metro...

    popular beetle 数据库比较,数据整合工具

    "Popular Beetle"是一款专业的数据库比较和数据整合工具,专为软件测试人员设计,旨在提高工作效率并确保数据的一致性。该工具提供了强大的功能,能够帮助用户深入对比不同数据库之间的结构差异,同时支持数据的同步...

    beetle-psx-libretro:Mednafen PSX 到 Libretro API 的独立端口

    甲壳虫 PSX 剧本Beetle PSX 是 Mednafen 的 PSX 模块到 libretro API 的端口/分支。 可以用C++98模式编译,不包括Vulkan渲染器,暂时是用C++11写的。 Beetle PSX 目前在 Linux、OSX 和 Windows 上运行。 这个分叉中...

    Python从零开始,一点一滴学习爬虫。-dung_beetle.zip

    -dung_beetle.zip" 是一个压缩包,其中包含了一个名为 "dung_beetle-master" 的文件夹,这很可能是项目的源代码目录,通常包括教程的实例、脚本和其他相关资源。让我们逐步了解Python爬虫的基本概念和常用工具。 1....

    使用netty3建立的JT809处理基本工程

    Netty 3基于非阻塞I/O模型,通过NIO(非阻塞输入/输出)和EPOLL(用于Linux的高效网络编程接口)提供高并发性能。它引入了Channel、Pipeline、EventLoopGroup等核心组件,使得网络编程变得更加简洁和高效。Channel是...

    Android-Beetle实现通过摇一摇手机就能够轻松地在GitHubGitLab和AzureDevOps上创建Bug报告

    至于“keracce-Beetle-9cc3275”,这可能是一个源代码库的特定版本标识,比如Git仓库的一个分支或者标签。这个名称可能指的是Beetle项目的作者或者一个特定的开发迭代。要深入理解这个项目,你需要解压这个压缩包并...

    【目标检测数据集】植物叶片病虫害检测数据集7100张4种植物12个标签VOC+YOLO格式.zip

    标注类别名称:["Cashew-anthracnose","Cashew-healthy","Cashew-leaf-miner","Cassava-bacterial-blight","Cassava-brown-spot","Cassava-healthy","Maize-healthy","Maize-leaf-beetle","Maize-leaf-blight",...

    天牛须算法(Beetle Antennae Search Algorithm)论文原文

    天牛须算法(Beetle Antennae Search Algorithm,简称BAS),是一种新型的智能优化算法,它以长角天牛的搜索行为为灵感而设计。长角天牛因其长长的触须而著名,这些触须常常比它们的身体还要长。BAS算法模拟了这些...

    scratch编程项目源代码文件案例素材-Beetle.zip

    本压缩包“Beetle.zip”提供了一个基于Scratch的编程项目源代码,旨在帮助初学者通过一个有趣的“Beetle”游戏案例学习编程。 在“Beetle.sb3”文件中,包含了整个游戏的完整源代码,用户可以直接在Scratch环境中...

    Beetle,摇一摇在github、gitlab和azure devops上创建bug报告!.zip

    对于那些频繁使用GitHub、GitLab和Azure DevOps的开发者来说,Beetle无疑是一个非常实用的工具,值得尝试和贡献。通过探索和参与这个项目,不仅可以学习到如何与这些平台的API进行交互,还可以了解如何构建高效且...

Global site tag (gtag.js) - Google Analytics