/*
停止线程:
1,stop方法。 2,run方法结束。 怎么控制线程的任务结束呢?
任务中都会有循环结构,只要控制住循环就可以结束任务。 控制循环通常就用定义标记来完成。 但是如果线程处于了冻结状态,无法读取标记。如何结束呢? 可以使用interrupt()方法将线程从冻结状态强制恢复到运行状态中来,让线程具备cpu的执行资格。 当时强制动作会发生了InterruptedException,记得要处理 */
class StopThread implements Runnable
{
private boolean flag = true;
public synchronized void run()
{
while(flag)
{
try
{
wait();//t0 t1
}
catch (InterruptedException e)
{
System.out.println(Thread.currentThread().getName()+"....."+e);
flag = false;
} System.out.println(Thread.currentThread().getName()+"......++++");
}
}
public void setFlag()
{
flag = false;
}
} class StopThreadDemo
{
public static void main(String[] args)
{
StopThread st = new StopThread(); Thread t1 = new Thread(st);
Thread t2 = new Thread(st); t1.start();
t2.setDaemon(true); //守护线程,后台线程
t2.start(); int num = 1;
for(;;)
{
if(++num==50)
{
// st.setFlag();
t1.interrupt();
// t2.interrupt();
break;
}
System.out.println("main...."+num);
} System.out.println("over");
}
}

最新文章

  1. [转]IntelliJ IDEA 使用心得与常用快捷键
  2. drop.delete.trauncat的区别
  3. 深入浅出 - Android系统移植与平台开发(十一)- Android系统的定制(瘋耔修改篇一)
  4. AlgorithmsI Programming Assignment 1: PercolationStats.java
  5. 雷达的L、S、C、X波段是什么
  6. webstorm-快捷键大全
  7. Java学习之--List和ArrayList
  8. Server.Transfer VS Response.Redirect – Simplified
  9. git tag的用法
  10. vue项目在安卓低版本机显示空白原因
  11. virtualbox+vagrant学习-2(command cli)-22-vagrant validate命令
  12. Usaco2008 Jan
  13. int类型转换的几种方式差异
  14. JavaScript:DOM操作
  15. Java学习遇到的问题
  16. 公司交换机arp 绑定操作
  17. javascrpt 页面格式化页面
  18. LeetCode String Compression
  19. 【线段树】bzoj3038 上帝造题的七分钟2 / bzoj3211 花神游历各国
  20. RDD编程 上(Spark自学三)

热门文章

  1. angularjs compile vs link
  2. django学习笔记(2)
  3. 【LG3246】[HNOI2016]序列
  4. 4821: [Sdoi2017]相关分析
  5. codechef FEB19 Manhattan Rectangle
  6. 第二章:走进shell
  7. Python之面向对象的组合、多态、菱形问题、子类中重用父类的两种方式
  8. 动态权限<三>华为小米特殊机制
  9. Catlike学习笔记(1.2)-使用Unity画函数图像
  10. alibaba/canal 阿里巴巴 mysql 数据库 binlog 增量订阅&消费组件