1.线程的状态图

需要注意的是:线程调用start方法是使得线程到达就绪状态而不是运行状态

2.停止线程的两种方法

1)自然停止:线程体自然执行完毕

2)外部干涉:通过线程体标识

1.线程类中定义线程体能够使用的标识

2.线程体使用该标识

3.提供对外的方法改变该标识

4.外部根据条件调用该方法即可

ThreadStop.java:

package 多线程;

public class ThreadStop {

    public static void main(String[] args) {
//真实角色
Study s = new Study();
//匿名代理
new Thread(s).start(); //外部干涉
for(int i=1;i<=100;i++) {
if(i==50) {
s.stop();
}
System.out.println("main--->"+i);
}
} } class Study implements Runnable{ //线程体类中定义线程体能够使用的标识
private boolean flag=true;
private int x=1;
@Override
public void run() {
// TODO Auto-generated method stub
//线程体改变该标识
while(flag) {
System.out.println("Study"+x+"秒");
x++;
}
}
//对外提供方法改变标识
public void stop() {
this.flag=false;
} }

注意:代理类系统自动提供的stop方法不要使用,要用stop的话,自己在线程类里面写一个,因为代理类系统自动提供的stop已经过时,存在不安全性问题

java中线程的几种状态和停止线程的方法的更多相关文章

  1. java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器

    多线程并发就像是内功,框架都像是外功,内功不足,外功也难得精要. 1.进程和线程的区别 一个程序至少有一个进程,一个进程至少有一个线程. 用工厂来比喻就是,一个工厂可以生产不同种类的产品,操作系统就是 ...

  2. Java中对象的三种状态

    Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究. 状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可达状态. 状态二:可复活态:从根节点开 ...

  3. Java中创建对象的5种方式 &&new关键字和newInstance()方法的区别

    转载:http://www.kuqin.com/shuoit/20160719/352659.html 用最简单的描述来区分new关键字和newInstance()方法的区别:newInstance: ...

  4. 在java中怎样实现多线程?线程的4种状态

    一.在java中怎样实现多线程? extends Thread implement Runnable 方法一:继承 Thread 类,覆盖方法 run(),我们在创建的 Thread 类的子类中重写 ...

  5. 透彻讲解,Java线程的6种状态及切换

    Java中线程的状态分为6种. 1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法.2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running) ...

  6. java 线程的几种状态(转载)

      java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW 状态是指线程刚创建, 尚未启动 RUNNABLE 状态是线程正在 ...

  7. Java线程的6种状态及切换

    Java中线程的状态分为6种. 1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法.2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running) ...

  8. Java线程的6种状态

    6种状态分别是: NEW.RUNNABLE.TERMINATED.WAITING.TIMED_WAITING.BLOCKED NEW:线程创建完毕 RUNNABLE:线程运行中,又分为READY + ...

  9. 并发编程——Java线程的6种状态及切换

    前言 本次主要分享一下Java线程的六种状态及其转换. 如果对于线程的创建方式不太了解,推荐观看并发编程--认识java里的线程 线程的状态及其转换 操作系统线程的五种状态 新建(NEW) 就绪(RU ...

随机推荐

  1. [SDOI2010]猪国杀

    题面 (这个做题面的大佬太赞啦) 无聊啊~~~然后就写大模拟,然后就从早上写到下午,生活得到了极大的充实 注意事项: 牌库为空之后再抽牌,会重复抽最后一张被抽走牌 无论在任何过程中,游戏结束(主公死或 ...

  2. ES6--JavaScript的第六个版本

    一.新的变量声明方式 let/cons 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 若是对变量提升不怎么了解的话可以去参考我的其 ...

  3. css实现自适应正方形的方法

    页面布局中,我们经常需要用百分比来实现宽度自适应,但是如果这时候高度要跟宽度呈固定比例变化,该怎么办呢? 很简单,我们可以利用元素的padding或margin的百分比值是参照父元素的宽度这一特性来实 ...

  4. CSS布局之——对齐方式

    一.水平居中: (1). 行内元素的水平居中? 如果被设置元素为文本.图片等行内元素时,在父元素中设置text-align:center实现行内元素水平居中,将子元素的display设置为inline ...

  5. python request 接口自动化设计

    设计思路: * 数据驱动 * 测试结果以邮件形式发送 * 保留测试过程的用例和请求结果到日志,方便查问题 设计如下: * bin * casehandler 读取txt或者xls文件中的用例,一个文件 ...

  6. go语言练习:sha256、sha512哈希算法

    package main import ( "fmt" "crypto/sha256") func main() { str:="test hash. ...

  7. Cordova 8 架构使用sqlite - 谢厂节的博客 - 博客频道 - CSDN.NET - Google Chrome

    Cordova 8 架构使用sqlite 标签: androidcordova 2015-07-16 16:41 4302人阅读 评论(0) 收藏 举报  分类: IONIC/Cordova(18)  ...

  8. win10 安装microsoft.net framework3.5

    转载于:https://www.windows10.pro/win10-net-framework-3-5/ 之前手残不小心把microsoft.net framework3.5删了,结果导致Sql ...

  9. 03-03_启动weblogic domain

    本文重点: 直接启动weblogic 控制台访问 weblogic概念及手工启动脚本分析 启动weblogic 启动admin Server做了哪些事情     一.直接启动weblogic [roo ...

  10. 基于esky实现python应用的自动升级

    一.esky介绍 Esky is an auto-update framework for frozen Python applications. It provides a simple API t ...