public class StopThread {

    // 静态字段的读写不必须要同步才能生效,尽管读写是原子的(atom)
private static boolean stopRequested; /**
* 对静态共享字段的写进行同步
*/
private static synchronized void requestStop() {
stopRequested = true;
System.out.println("stopRequested");
} /**
* 对静态共享字段的读进行同步
* @return boolean
*/
private static synchronized boolean stopRequested() {
return stopRequested;
} public static void main(String[] args) throws InterruptedException {
Thread bkThread = new Thread(new Runnable() {
@Override
public void run() {
int i = 0;
while (!stopRequested()) {
System.out.println(i);
i++;
}
}
}); // 启动异步线程
bkThread.start(); // 主线程休眠1秒
TimeUnit.SECONDS.sleep(1); // 发出stop指令(stopRequested = true)
requestStop();
}
}

最新文章

  1. Web APi之HttpClient注意事项以及建议(四)
  2. jqurey datatable tableTools 自定义button元素 以及按钮自事件
  3. 如何调试js文件
  4. 安装Ifconfig
  5. LeetCode33 Search in Rotated Sorted Array
  6. ios开发之路十一(ARC forbids explicit message send of 'autorelease'错误)
  7. React与Preact差异之 -- setState
  8. PA模块报错-实际返回的行数超出请求的行数(分析标准FORM报错解决思路)
  9. OOP的概念和基础特性
  10. GC调优
  11. [小知识点] react 性能
  12. Jmeter(三十七)源码导入IDE(转!)
  13. 转头条:阿里p7架构师:三年经验应该具备什么样的技能?
  14. Java之旅--定时任务(Timer、Quartz、Spring、LinuxCron)
  15. Android实例剖析笔记(四)
  16. Nagios配置文件说明
  17. PTA基础编程题目集7-4 BCD解密
  18. (查找函数+atoi)判断与(注册函数+strcmp函数)判断两种方法
  19. Acheron一期SVN地址
  20. make编译六

热门文章

  1. Java的并发编程中的多线程问题到底是怎么回事儿?
  2. Caffe常用层参数介绍
  3. Docker配置国内加速器加速镜像下载的方法
  4. Benchmark简介
  5. 析构函数 (C++)
  6. distinct 多列详解
  7. Flask Restful服务简单实现
  8. TRIZ系列-创新原理-13-反过来做原理
  9. Redis2.2.2源码学习——Server&Client链接的建立以及相关Event
  10. Mahout源码目录说明