工具类,抽象死循环逻辑的

import java.util.concurrent.atomic.AtomicBoolean;

/**
* if the process closes, a signal is placed as true, and all threads get this flag to stop working
*/
public class Stopper { private static AtomicBoolean signal = new AtomicBoolean(false); public static final boolean isStopped(){
return signal.get();
} public static final boolean isRunning(){
return !signal.get();
} public static final void stop(){
signal.set(true);
}
}

使用

while (Stopper.isRunning()) {
InterProcessMutex mutex = null;
try {
if (zkClient.getZkClient().getState() == CuratorFrameworkState.STARTED) {
mutex = zkClient.blockAcquireMutex();
// zk获取到锁开始执行业务逻辑,此处可以使用Thread.yield代理Thread.sleep方法
}
} catch (Exception ex) {
logger.error("master scheduler thread error", ex);
} finally {
zkClient.releaseMutex(mutex);
}
}

Stopper的使用的更多相关文章

  1. day3 Linux基础

    1.正文处理命令及tar命令 1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group >1.txt2) 将用户信 ...

  2. karma的基础应用之与fis结合

    一.介绍 1. karma是单元测试运行框架,可以集成jasmine断言库,也支持babel. 2.fis是百度前端团队开源推出的前端工程化管理工具. 二.karma的基础应用 1.karma的基础a ...

  3. 通过pustil模块取pid及对应的pidname

    通过pustil模块取pid及对应的pidname import psutil import json def getpid(): reslut = psutil.pids() return resl ...

  4. Fix catalyst driver in Ubuntu 13.04 / 13.10

    Fix catalyst driver in Ubuntu 13.04 / 13.10(墙外文章备份) 1. Introduction I found lots of people strugglin ...

  5. mysql hang and srv_error_monitor_thread using 100% cpu

    昨天晚上,运维过来说有台生产服务器的mysql cpu一直100%,新的客户端登录不了,但是已经在运行的应用都正常可用. 登录服务器后,top -H看了下,其中一个线程的cpu 一直100%,其他的几 ...

  6. MySQL 调优基础(一) CPU与进程

    一般而言,MySQL 的调优可以分为两个层面,一个是在MySQL层面上进行的调优,比如SQL改写,索引的添加,MySQL各种参数的配置:另一个层面是从操作系统的层面和硬件的层面来进行调优.操作系统的层 ...

  7. linux基础-第十一单元 系统监控

    第十一单元 系统监控 系统监视和进程控制工具-top和free top命令的功能 TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序 ...

  8. 如何通过pid快速找出进程的路径

    [carlton@oc3408554812 Desktop]$ top top - 09:35:06 up 32 min,  2 users,  load average: 1.49, 1.56, 1 ...

  9. stage simulator

    ---恢复内容开始--- 运行自带地图 rosrun stage_ros stageros /opt/ros/indigo/share/stage_ros/world/willow-erratic.w ...

随机推荐

  1. grafana接入zabbix数据源

    一.grafana介绍 grafana是开源免费的应用数据可视化仪表盘,由于zabbix本身对监控数据可视化并不侧重,所以大多使用第三方数据可视化工具来做大屏.下面向小伙伴们介绍grafana接入za ...

  2. 【cypress】4. 丰富的调试工具

    Cypress附带了一系列调试工具来帮助我们弄明白测试的经过,利于我们更好的调试. 具体这些工具的能力都有啥? 回到每个命令的快照. 可以看到特殊的已发生的page events. 接收关于每个命令的 ...

  3. 1.4.19- HTML标签之注释标签

    有的时候我们输入的代码,让你别人看,别人不知道你的思路,可能就看不懂,或者或一段时间自己就看不懂了,这个时候我们需要对代码进行注释,解释我们的代码什么意思: <!DOCTYPE html> ...

  4. 转载:java.math.BigDecimal 比较大小

    BigDecimal a = new BigDecimal (101); BigDecimal b = new BigDecimal (111); //使用compareTo方法比较 //注意:a.b ...

  5. 病毒木马查杀实战第017篇:U盘病毒之专杀工具的编写

    前言 经过前几次的讨论,我们对于这次的U盘病毒已经有了一定的了解,那么这次我们就依据病毒的行为特征,来编写针对于这次U盘病毒的专杀工具. 专杀工具功能说明 因为这次是一个U盘病毒,所以我打算把这次的专 ...

  6. POJ1149 最大流经典建图PIG

    题意:       有一个人,他有m个猪圈,每个猪圈里都有一定数量的猪,但是他没有钥匙,然后依次来了n个顾客,每个顾客都有一些钥匙,还有他要卖猪的数量,每个顾客来的时候主人用顾客的钥匙打开相应的门,可 ...

  7. Docker用Commit给容器做快照

    关于 commit 镜像是容器的基础,每次执行 docker run 的时候都会指定哪个镜像作为容器运行的基础. 镜像是多层存储,每一层是在前一层的基础上进行修改:而容器同样也是多层存储,是在以镜像为 ...

  8. 【python】Leetcode每日一题-设计停车系统

    [python]Leetcode每日一题-设计停车系统 [题目描述] 请你给一个停车场设计一个停车系统.停车场总共有三种不同大小的车位:大,中和小,每种尺寸分别有固定数目的车位. 请你实现 Parki ...

  9. Docker安装ElasticSearch和Kibana

    创建容器elasticsearch docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type= ...

  10. QQ可以登录,网页无法访问

    之前以为是网络的问题,但是,后来发现QQ却可以登录,这是第二次碰到这个情况,所以总结一下 一般我们电脑上都会安装一个杀毒软件,比如火绒等等.我电脑上用的联想自带的电脑管家 我们可以在工具箱中找到网络诊 ...