应用程序服务子框架的实现了一个简单的线程编程模型来简化传统的线程开发,主要提供了以下功能:
Ø线程自身的启动(常规启动或作为守护线程启动)、关闭(常规关闭或粗暴关闭)
Ø线程自动循环执行,无需手工构建循环逻辑(也可手工构建)
Ø支持线程结束事件
Ø支持线程运行时阻塞状态监控及线程重新拉起
其对外线程编程接口是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
分享到:
相关推荐
Beetle J2ee Application Framework(BJAF)一个功能强大而简单易用的J2EE应用开发框架。它涵盖了J2EE体系结构的表示层、业务层和持久层,为构建一个可靠、高性能、可扩展、灵活缩放的高质量企业应用系统提供了一套...
BJAF(beetle-j2ee-application-framework)甲壳虫J2EE应用开发框架代码&开发指南 甲壳虫,一个功能强大而简单易用的J2EE应用开发框架。它涵盖了J2EE体系结构的表示层、业务层和持久层,为构建一个可靠、高性能、可...
beetle 开源框架书的源码 beetle 开源框架书的源码
Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码Beetle....
已经成功应用于多个高并发量的TCP、UDP框架通信接口,
X协议解析测试程序,服务器和客户端都有,字数字数字数
BAS: Beetle Antennae Search Algorithm for Optimization Problems。 论文英文原文。
软件测试的利器。 最新版本请到这下载www.popular-soft.com/beetle/zh-cn/
有需要的朋友就下吧
scratch编程项目源代码文件案例素材-Beetle.zip
甲壳虫 PSX 剧本Beetle PSX 是 Mednafen 的 PSX 模块到 libretro API 的端口/分支。 可以用C++98模式编译,不包括Vulkan渲染器,暂时是用C++11写的。 Beetle PSX 目前在 Linux、OSX 和 Windows 上运行。 这个分叉中...
Python从零开始,一点一滴学习爬虫。-dung_beetle
适用于Chrome的高清版19张adung甲虫图像新标签页。 粪便甲虫是部分或完全以粪便为食的甲虫。 一头甲虫可以在一个晚上掩埋比自己重250倍的粪便。 许多被称为“滚子”的粪便甲虫会将粪便滚成圆球,用作食物来源或繁殖...
c#传输文件传输用到的类, 听说效率不错,具体没用过
BJAF 是甲壳虫J2EE 应用框架(Beetle J2EE Application Framework)的简写,它并不是一个可以 即时看见和运行的应用系统,它为构建于J2EE 之上的应用系统定义了一个固定而有效的设计开发框 架,简化J2EE 应用,尤其...
beetle是基于c#编写的高性能Socket tcp组件,它基于SocketAsyncEventArgs的实现并提供了发送队列和接收队列的支持,可以根据情况灵活地设置1-N个发送队列和接收队列。除了队列上的支持组件还提供Buffer缓冲池和基于...
蜣螂优化算法是最新的群智能优化算法,2022年底提出,里面有相关的文章和代码,可以结合自身课题进行研究,值得推荐,亲用优化效果非常的好。
欢迎使用有趣的搜索框。 我们在27-02-2018中添加了最迷人的高品质大众甲壳虫壁纸您想看大众甲壳虫的壁纸吗? 有数百种壁纸可以查看更多壁纸,请浏览我们的网站。 您可以在funsearchox.com上找到很多壁纸以及更多! ...
数据操作的jar包,包括oracle/mssql,通用~
:lady_beetle: SQLIZE-LIFE-API NodeJs Express MySQL Sequalize RESTful API :lady_beetle: 堆栈 固件/库 描述 :large_orange_diamond: 节点 :large_orange_diamond: 节点快车 宁静的API :large_orange_...