当前位置: 首页 > news >正文

莆田有交做外贸网站的没/seo有哪些网站

莆田有交做外贸网站的没,seo有哪些网站,徐州做网站最好的公司,怎么向百度提交网站现在有个需求,我有一个操作,但操作时间多,于是拆分多个子操作(可以并行的子操作),需要监控子操作的状态,甚至数据等。 为了实现一点,我们可以使用观察者设计模式,首先&a…

现在有个需求,我有一个操作,但操作时间多,于是拆分多个子操作(可以并行的子操作),需要监控子操作的状态,甚至数据等。

为了实现一点,我们可以使用观察者设计模式,首先,子操作可以理解为一个subject,继承runnable,里面包含了observer,及状态变更时,通知observer的方法。

observer,定义一个操作方法,然后运行多个subject。

1.先定义一个subject,线程状态或者里面的数据的变化会主动通知

public abstract class ObservableRunnable implements Runnable {final protected LifeCycleListener listener; //observerpublic ObservableRunnable(final LifeCycleListener listener) {this.listener = listener;}protected void notifyChange(final RunnableEvent event) {listener.onEvent(event);}public enum RunnableState {RUNNING, ERROR, DONE}public static class RunnableEvent {private final RunnableState state;private final Thread thread;private final Throwable cause;public RunnableEvent(RunnableState state, Thread thread, Throwable cause) {this.state = state;this.thread = thread;this.cause = cause;}public RunnableState getState() {return state;}public Thread getThread() {return thread;}public Throwable getCause() {return cause;}}
}

2.定义一个observer

public interface LifeCycleListener {void onEvent(ObservableRunnable.RunnableEvent event);
}
public class ThreadLifeCycleObserver implements LifeCycleListener {private final Object LOCK = new Object();public void concurrentQuery(List<String> ids) {if (ids == null || ids.isEmpty())return;ids.stream().forEach(id -> new Thread(new ObservableRunnable(this) {@Overridepublic void run() {try {notifyChange(new RunnableEvent(RunnableState.RUNNING, Thread.currentThread(), null));System.out.println("query for the id " + id);Thread.sleep(1000L);notifyChange(new RunnableEvent(RunnableState.DONE, Thread.currentThread(), null));} catch (Exception e) {notifyChange(new RunnableEvent(RunnableState.ERROR, Thread.currentThread(), e));}}}, id).start());}@Overridepublic void onEvent(ObservableRunnable.RunnableEvent event) {synchronized (LOCK) {System.out.println("The runnable [" + event.getThread().getName() + "] data changed and state is [" + event.getState() + "]");if (event.getCause() != null) {System.out.println("The runnable [" + event.getThread().getName() + "] process failed.");event.getCause().printStackTrace();}}}
}

3.定义一个client

public class ThreadLifeCycleClient {public static void main(String[] args) {new ThreadLifeCycleObserver().concurrentQuery(Arrays.asList("1", "2"));}
}
http://www.lbrq.cn/news/947737.html

相关文章:

  • 成都网站建设 全美/正规seo关键词排名哪家专业
  • 焦作网站建设兼职/百度推广登录账号首页
  • 创建网站为啥要钱/站长工具最近查询
  • 重庆市住房与城乡建设委员会网站/千锋教育培训多少钱
  • 品牌网站设计工作室/长春网站快速优化排名
  • 域名价格是怎么收费的/seo兼职接单平台
  • wordpress百家号模版/深圳优化公司排名
  • 个人备案网站建设方案书/成都网站seo
  • 网站建设近义词/简述网站推广的意义和方法
  • 学做网站要代码/dz论坛如何seo
  • 做网站教程流程/快速排名seo软件
  • 菏泽机关建设网站/河南品牌网站建设
  • 新时代文明实践站模板/如何网站seo
  • 网站设计高端网站制作/怎样才能在百度上面做广告宣传
  • 建设网站的视频/关键词优化技巧
  • 网站怎么做自营销/求网址
  • 网站管理有哪些/引流推广平台有哪些
  • 桂林网站开发公司/b站引流推广
  • 在网站上显示备案信息/建站模板网站
  • 门户网站开发的意义/个人微信管理系统
  • wordpress站点打不开/重庆seo整站优化外包服务
  • vue.js做网站/seo测试工具
  • 石家庄哪里可以做网站/如何建立一个网站
  • 专门做地图的网站/长沙靠谱关键词优化公司电话
  • wordpress主题里加广告/优化大师电脑版官方
  • 泉州 网站制作/济南seo排名搜索
  • 网站抬头怎么做/百度网址大全 官网
  • 建设网站开发的语言有哪些/电商中seo是什么意思
  • asp做的网站如何更新/百度广告怎么做
  • 深圳政府招聘信息网站/网站模板免费
  • Linux命令基础完结篇
  • 【Unity开发】数据存储——XML
  • 造成服务器内存不足的原因有什么
  • 开发避坑短篇(5):vue el-date-picker 设置默认开始结束时间
  • 基于Odoo的微信小程序全栈开发探索分析
  • LeetCode 2563.统计公平数对的数目