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

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. js收藏展开与隐藏,返回顶部

    var a = document.getElementById("more");var b = document.getElementById("moreList&quo ...

  2. hdu3255 线段树扫描线求体积

    题意:       给你n个矩形,每个矩形上都有一个权值(该矩形单位面积的价值),矩形之间可能重叠,重叠部分的权值按照最大的算,最后问这n个矩形组成的图形的最大价值. 思路:       线段树扫描线 ...

  3. 逆向 string.h 函数库 memset、strcpy、strcmp 函数

    memset 函数 函数原型:void *memset(void *str, int c, size_t n) 主要功能:复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符 ...

  4. Python 爬虫与HTTP协议简介

    爬虫的实际例子: 搜索引擎(百度.谷歌.360搜索等). 伯乐在线. 惠惠购物助手. 数据分析与研究(数据冰山知乎专栏). 抢票软件等. 什么是网络爬虫: 通俗理解:爬虫是一个模拟人类请求网站行为的程 ...

  5. Java中的结构语句

    目录 循环语句 While循环 do...While循环 for循环 增强型for语句 条件语句 if..else语句 if...else if...else 语句 嵌套的 if-else 语句 sw ...

  6. spring boot pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  7. .Net 中两分钟集成敏感词组件

    现如今大部分服务都会有用户输入,为了服务的正常运行,很多时候不得不针对输入进行敏感词的检测.替换.如果人工做这样的工作,不仅效率低,成本也高.所以,先让代码去处理输入,成为了经济方便的途径.水弟在这里 ...

  8. SQL中那么多函数,Java8为什么还要提供重复的Stream方法,多此一举?

    有个同学提出一个这样的疑问; 在业务系统中,数据一般都从sql中查询,类似使用where,order by,limit,聚合函数等,为什么还要用java8的Stream方法? 对这个问题,大家有什么见 ...

  9. Let's go!

    第一次开通博客 心情还是很激动的,而且做出了这么好看的页面虽然都是用的别人的组件,自己不是很知道原理但是也很开心,以后会将自己学习的东西写成笔记发在上面

  10. ARM64平台编译stream、netperf出错解决办法 解决办法:指定编译平台为alpha [root@localhost netperf-2.6.0]# ./configure –build=alpha

    ARM64平台编译stream.netperf出错解决办法 http://ilinuxkernel.com/?p=1738 stream编译出错信息: [root@localhost stream]# ...