免费制作logo的网站网站建设招标书范本

web/2025/10/1 19:04:24/文章来源:
免费制作logo的网站,网站建设招标书范本,装修队伍做网站,久久网招聘信息常用程序模式-LifeCycle模式 场景 当我们要监控一个组件的生命周期的时候#xff0c;比如#xff0c;启动时#xff0c;启动后#xff0c;关闭前#xff0c;关闭后 实现 LifeCycleModule public interface LifeCycleModule {/*** 获取当前状态* return*/LifeCycle.St…常用程序模式-LifeCycle模式 场景 当我们要监控一个组件的生命周期的时候比如启动时启动后关闭前关闭后 实现 LifeCycleModule public interface LifeCycleModule {/*** 获取当前状态* return*/LifeCycle.State getCurrentState();/*** add listener* param listener*/void addListener(LifeCycleListener listener);/*** 启动*/void start();/*** 停止*/void stop();/*** 关闭*/void close(); }AbstractLifeCycleModule: public abstract class AbstractLifeCycleModule implements LifeCycleModule {private LifeCycle lifeCycle new LifeCycle();private ListLifeCycleListener listeners new ArrayList();Overridepublic LifeCycle.State getCurrentState() {return lifeCycle.getState();}Overridepublic void addListener(LifeCycleListener listener) {listeners.add(listener);}Overridepublic void start() {synchronized (lifeCycle){if (!lifeCycle.canChangeToStart()){return;}for (LifeCycleListener listener : listeners) {listener.beforeStart();}doStart();lifeCycle.changeToStarted();for (LifeCycleListener listener : listeners) {listener.afterStart();}}}protected abstract void doStart();Overridepublic void stop() {synchronized (lifeCycle){if (!lifeCycle.canChangeToStop()){return;}for (LifeCycleListener listener : listeners) {listener.beforeStop();}doStop();lifeCycle.changeToStop();for (LifeCycleListener listener : listeners) {listener.afterSop();}}}protected abstract void doStop();Overridepublic void close() {synchronized (lifeCycle){if (!lifeCycle.canChangeToClose()){return;}for (LifeCycleListener listener : listeners) {listener.beforeClose();}lifeCycle.changeToClosed();try {doClose();}catch (Exception e){throw new RuntimeException(e);}finally {for (LifeCycleListener listener : listeners) {listener.afterClose();}}}}protected abstract void doClose(); }LifeCycleListener public interface LifeCycleListener {/*** 在开始之前*/void beforeStart();/*** 在开始之后*/void afterStart();/*** 在停止之前*/void beforeStop();/*** 在停止之后*/void afterSop();/*** 在关闭之前*/void beforeClose();/*** 在关闭之后*/void afterClose(); }LifeCycle 状态管理 public class LifeCycle {private volatile LifeCycle.State state State.INIT;public LifeCycle.State getState() {return state;}public boolean canChangeToStart() {State curState this.state;if (curState State.INIT || curState State.STOP) {return true;}if (curState State.START) {return false;}if (curState State.CLOSE) {throw new IllegalArgumentException(can not move close to start);}throw new IllegalArgumentException(illegal state);}public synchronized boolean changeToStarted() {State curState this.state;if (curState State.INIT || curState State.STOP) {state State.START;return true;}return false;}public boolean canChangeToClose() {State curState this.state;if (curState State.CLOSE) {return false;}return true;}public synchronized boolean changeToClosed() {State curState this.state;if (curState State.CLOSE) {return false;}state State.CLOSE;return true;}public boolean canChangeToStop() {State curState this.state;if (curState State.START) {return true;}return false;}public synchronized boolean changeToStop() {State curState this.state;if (curState State.START) {state State.STOP;return true;}return false;}enum State {INIT, START, STOP, CLOSE}public boolean initialized() {return this.state State.INIT;}public boolean started() {return this.state State.START;}public boolean stopped() {return this.state State.STOP;}public boolean closed() {return this.state State.CLOSE;}}测试 Slf4j public class WebServer extends AbstractLifeCycleModule{public WebServer(){addListener(new WebServerListener());}Overrideprotected void doStart() {log.info({} doStart, Thread.currentThread().getName());}Overrideprotected void doStop() {log.info({} doStop, Thread.currentThread().getName());}Overrideprotected void doClose() {log.info({} doClose, Thread.currentThread().getName());}static class WebServerListener implements LifeCycleListener{Overridepublic void beforeClose() {log.info({} before close, Thread.currentThread().getName());}Overridepublic void afterClose() {log.info({} after close, Thread.currentThread().getName());}Overridepublic void beforeStart() {log.info({} before start, Thread.currentThread().getName());}Overridepublic void afterStart() {log.info({} after start, Thread.currentThread().getName());}Overridepublic void beforeStop() {log.info({} before stop, Thread.currentThread().getName());}Overridepublic void afterSop() {log.info({} after stop, Thread.currentThread().getName());}}public static void main(String[] args) throws InterruptedException {WebServer webServer new WebServer();webServer.start();TimeUnit.SECONDS.sleep(1);webServer.stop();TimeUnit.SECONDS.sleep(1);webServer.close();} }结果: INFO com.example.lifecycle.WebServer -- main before start INFO com.example.lifecycle.WebServer -- main doStart INFO com.example.lifecycle.WebServer -- main after start INFO com.example.lifecycle.WebServer -- main before stop INFO com.example.lifecycle.WebServer -- main doStop INFO com.example.lifecycle.WebServer -- main after stop INFO com.example.lifecycle.WebServer -- main before close INFO com.example.lifecycle.WebServer -- main doClose INFO com.example.lifecycle.WebServer -- main after close

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站开发方向的工作wordpress 移动模板

KTV的竞争已经到了拼综合实力的阶段,向管理要效益、建立完善的KTV企业管理体系的重要性已经不言而喻了,建立全面的管理体系,可以促进KTV整体管理工作同步化、协调化,全面提升管理绩效,是KTV企业立足市场,基…

网站百度收录删除怎么设置wordpress底栏文字

前提:以下代码是vue2项目结合elementUi完成的 数据结构 后端传来的数据是两个list,一个表头的list,一个表格内容的list // 表头 headTableAtts: [{ columnLabel: 姓名, columnName: name },{ columnLabel: 年龄, columnName: age },{ colu…

上海工程建设招投标网站专门学习网站建设读什么专业

经常可以见到.说解决跨域只要返回加上"Access-Control-Allow-Origin"头部就行… 下面从实践中一步一步的理解. 1.环境准备: 1. node.js (http://nodejs.cn/) 自行下载配置, 完毕后(cmd)输入 node --version 若显示版本号则代表成功// ps: node(中的npm)方便下载资源…

上海建设银行网站上班时间wordpress 婚恋

Reindex如何实现索引重建? 滚动索引 批量复制 Reindex存在的问题 如果新的索引没有提前创建好,并指定字段类型,那么重建后的新索引类型极有可能会和旧的索引不一致,因为ES他会推断类型,而推断错误率从实战来说那是…

太原建立网站北京百度关键词优化

P1 Redis企业实战课程介绍 P2 短信登录 导入黑马点评项目 首先在数据库连接下新建一个数据库hmdp,然后右键hmdp下的表,选择运行SQL文件,然后指定运行文件hmdp.sql即可(建议MySQL的版本在5.7及以上): 下面这…

珠海响应式网站建设公司asp网站镜像代码

一、题目 求1/22/33/4……n-1/n的和 如图&#xff1a; 二、思路分析 1、1/2、2/3、3/4……可以用(i/i1) 2、设置一个函数&#xff0c;求数的相加之和 三、代码截图【带注释】 四、源代码【带注释】 #include <stdio.h> int main() { int num; printf("输入…

佛山网站的建设简述seo的概念

文章目录1. 题目2. 解题1. 题目 现有一个包含所有正整数的集合 [1, 2, 3, 4, 5, …] 。 实现 SmallestInfiniteSet 类&#xff1a; SmallestInfiniteSet() 初始化 SmallestInfiniteSet 对象以包含 所有 正整数。int popSmallest() 移除 并返回该无限集中的最小整数。void ad…

重庆1000元网站建设抖音账号权重查询入口

这本书短短的100多页&#xff0c;很象是一篇文章。但是指出的很多问题的确容易出现在笔试的改错题中--------------------------------------------------------------------第1章 词法陷阱1.1 和 1.3 词法分析的"贪心法则"编译器从左到右读入字符&#xff0c;每个符…

外贸展示型模板网站模板池州建行网站

导言&#xff1a; ._locked勒索病毒&#xff0c;一种近年来日益猖獗的网络安全威胁&#xff0c;已经引起了全球范围内的广泛关注。该病毒通过电子邮件附件、恶意网站和漏洞利用等多种方式传播&#xff0c;一旦感染系统&#xff0c;就会加密受感染设备上的所有文件&#xff0c;…

搜狗提交网站入口国家企业信用公示信息系统(湖南)

1 mongo同步数据到mysql中 我想把51万8400的计算出来的八字信息&#xff0c;从mongo同步到mysql&#xff0c;看看在mysql中运行会怎么样。 选择mongodb input&#xff0c;这个是在Big Data中。 填写数据库和表 获取到mongodb的字段,获取到mongo的字段&#xff0c;如果某个字段…

外国扁平化网站乌克兰俄罗斯

不止杭州&#xff0c;还在广州、南京、成都...更多城市蔓延开来 各位有没有想过&#xff0c;为什么会有“保房价” 我想很多人最先听说这个词还是来自杭州业主 的确&#xff0c;作为曾经受房价影响最大的一个城市&#xff0c;杭州业主们可以说是最深谙房价上涨逻辑的那泼人了…

上海网站制作网络推广为企业做一件小事

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

装饰工程网站模板开源php网站开发

题目 给你一个下标从 1 开始、长度为 n 的整数数组 nums 。 现定义函数 greaterCount &#xff0c;使得 greaterCount(arr, val) 返回数组 arr 中 严格大于 val 的元素数量。 你需要使用 n 次操作&#xff0c;将 nums 的所有元素分配到两个数组 arr1 和 arr2 中。在第一次操…

威海网站设计公司珠海企业医疗网站建设

其实也是在easyhadoop做第二次重构的时候用到了这个嵌入式的webserver去做服务器状态的监控&#xff0c;可以单独摘出来写个东西。思路主要是用python脚本获取linux服务器的各种状态信息&#xff0c;然后用webserver的方式&#xff0c;以json数据发给http&#xff0c;主控节点去…

哈尔滨网站制作推广如何上传网站模板

关于文件编码的检测&#xff0c;很多人建议 mb_detect_encoding 检测&#xff0c;可是不知为何不成功&#xff0c;什么都没输出、看到有人写了个增强版&#xff0c;用 BOM 判断的&#xff0c;我果断就无视了&#xff0c;这东西完全不靠谱、最终根据PHP手册里 mb_detect_encodin…

做网站有生意吗百度关键词搜索排名查询

前言 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱…

有什么设计网站企业建设网站有用么

一、前言 Redis提供了数据变化的通知事件&#xff0c;可以实时监测key和value的变化&#xff0c;客户端可以通过订阅相关的channel来接收这些通知事件&#xff0c;然后做相应的自定义处理&#xff0c;详细的介绍可以参考官方文档Redis keyspace notifications | Docs 使用Red…

余姚市建设局网站推广策划案怎么写

目录 一、socket创建流程。 二、I/O多路复用 三、服务器开发常见的并发模型 1、模型一:单线程——无IO复用 1.1 模型分析 2、模型二:单线程accept + 多线程读写业务(无IO复用) 模型分析 3、模型三:单线程多路IO复用 模型分析 4、模型四࿱

建设好一个网站需要iis网站批量导入

系列文章目录 文章目录 系列文章目录前言一、抽象工厂模式二、装饰器模式是什么三、代理模式和装饰器模式有什么区别前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。…

新河seo怎么做整站排名移动端的网站怎么做的

&#xff08;四&#xff09;栏/字段 SharePoint中的字段&#xff08;中文版中叫做“栏”&#xff09;与传统的数据栏类似&#xff0c;也有不同类型的区别&#xff0c;不过SharePoint中内置的栏类型除了按照数据类型&#xff08;如数字、日期和时间等&#xff09;进行区分之外&…