博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
外部线程停止Java子线程的方法
阅读量:6991 次
发布时间:2019-06-27

本文共 1275 字,大约阅读时间需要 4 分钟。

一、Thread.stop()

官方不推荐,Because it is inherently unsafe.

二、方式一
1. 线程类示例

public class ThreadT1 implements Runnable {    private Thread threadThis;    public void start() {        threadThis = new Thread(this);        threadThis.start();    }    public void stop() {        threadThis = null;    }    public void run() {        Thread thisThread = Thread.currentThread();        while (threadThis == thisThread) {        System.out.println("lalala~ ");        // DO YOUR WORK !    }    System.out.println("stopped!!!");    }}

2. 使用示例

ThreadT1 th1 = new ThreadT1();th1.start(); //新建线程并启动th1.stop(); //停止这个线程

三、方式二
1. 线程类示例

public class ThreadT2 extends Thread {    private boolean stop = false;    public void stopByMark() {        stop = true;    }    public void run() {        while (!stop) {        System.out.println("lalala~ ");        // DO YOUR WORK !    }    System.out.println("stopped!!!");    }}

2.使用示例

ThreadT2 th2 = new ThreadT2();th2.start(); //新建线程并启动th2.stopByMark(); //停止这个线程

附、关于Thread.interrupt()
通过这个方式也能停止线程。
前提条件:

public void run(){    try {        Thread.sleep(5000);    } catch (InterruptedException e) { //必须存在捕获InterruptedException的方法,且发生了该    抛出就调用stop方法。    e.printStackTrace();    stopByMark();    }}

 

转载于:https://www.cnblogs.com/yoyotl/p/7873122.html

你可能感兴趣的文章
android系统中的文件系统
查看>>
.NET Core 配置
查看>>
linux下安装配置JDK+Tomcat+Mysql测试环境
查看>>
2008 屏保
查看>>
我的友情链接
查看>>
nginx 负载均衡proxy 配置
查看>>
linux系统中yum服务器的配置
查看>>
如何使用python语言而辩论
查看>>
CentOS 5.4下配置Java的jdk环境
查看>>
为什么需要Page Object?
查看>>
第二章 索引
查看>>
《新浪微博Android客户端开发完整视频 Touch Android版》
查看>>
python sys模块
查看>>
python常见模块命令(os/sys/platform)
查看>>
怎么调整CPU资源分配,如何将资源公平地分配给各个进程
查看>>
源码安装mysql5.7.11
查看>>
WinForm窗体 接受Enter、ESC键
查看>>
linux命令的学习
查看>>
创建本地yum源
查看>>
GCC 编译选项(转)
查看>>