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

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. git 避免重复输入用户名密码问题解决

    "store" 模式会将凭证用明文的形式存放在磁盘中,并且永不过期. 这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息. 这种方式的缺点是你的 ...

  2. hdu4791水题

    题意:       打印东西,给你区间和每个区间的价格,然后输入任务张数,输出最少花费..    题解:       昨晚的小测试就有这个题目,当时蒙B了,怎么也读不懂题目,一直纠结怎么把150拆成1 ...

  3. DexClassLoader动态加载分析

    转载自:http://www.blogfshare.com/dexclassloader.html 看到原来有把原始的dex文件加密保存,然后解密后使用DexClassLoader加载文件的方法,就来 ...

  4. hdu1255 扫描线,矩形重叠面积(两次以上)

    题意:       给你n个矩形,然后问你这n个矩形所组成的画面中被覆盖至少两次的面积有多大. 思路:       和1542差距并不是很大,大体上还是离散化+线段树扫面线,不同的地方就是这个题目要求 ...

  5. Linux系统登录相关

    whoami:查看当前用户 who:查看当前登录系统的所有用户 tty指的是主机的图形化界面的面板 pts/x指的是远程ssh连接的窗口 who -b:主机的上一次启动时间 w:显示已经登陆系统的用户 ...

  6. WinDBG 调试命令大全

    转载收藏于:http://www.cnblogs.com/kekec/archive/2012/12/02/2798020.html  #调试命令窗口 ++++++++++++++++++++++++ ...

  7. 【js】Leetcode每日一题-制作m束花所需的最少天数

    [js]Leetcode每日一题-制作m束花所需的最少天数 [题目描述] 给你一个整数数组 bloomDay,以及两个整数 m 和 k . 现需要制作 m 束花.制作花束时,需要使用花园中 相邻的 k ...

  8. FileItem的部分方法解释

    FileItem的部分方法: boolean isFormField() isFormField() 方法用来判断FileItem对象里面封装的数据是一个普通文本表单字段,还是一个文件表单字段.如果是 ...

  9. PHP 调用请求外网接口

    1.类中定义静态方法 class FtpService{ /** * 请求外网 * @param $url 外网接口url * @param bool $params 参数,拼接字符串 post请求可 ...

  10. Nginx解决跨域问题(CORS)

    跨域 解决跨域问题一般有两种思路: CORS 在后端服务器设置 HTTP 响应头,把你需要运行访问的域名加入加入 Access-Control-Allow-Origin中. jsonp 把后端根据请求 ...