停止一个java的线程执行

找了一个停止线程运行的方法,代码如下:

public class stopThread extends Thread {
    private volatile boolean stop = false;

    @Override
    public void run(){
        System.out.println("t1 is start...");
        while(!stop){
            System.out.println("t1 is running....");
        }
        System.out.println("t1 stopped");
    }

    public void terminate(){
        stop = true;
    }

    public static void main(String[] args){
        stopThread t1 = new stopThread();
        t1.start();
        for(int i = 0; i < 500000;i++ ){
            System.out.println("main is running....");
        }
        t1.terminate();
    }

}

如此就可以停止掉一直在运行的线程。

可是这么干有一个问题,我现在写的是很快就返回到了while去判断条件,这样会跳出来。但是如果是要控制线程执行时间,如果超时就不执行了,直接返回,这段代码还是不合适。可以再想想。。。。

时间: 2024-10-15 20:47:45

停止一个java的线程执行的相关文章

一个Java程序的执行过程(转)

我们手工执行java程序是这样的: 1.在记事本中或者是UE的文本编辑器中,写好源程序: 2.使用javac命令把源程序编译成.class文件: 编译后的.class(类字节码)文件中会包含以下内容: ConstantPool:符号表: FieldInfo:类中的成员变量信息: MethodInfo:类中的方法描述: Attribute:可选的附加节点. FieldInfo节点包含成员变量的名称,诸如public,private,static等的标志.ConstantValue属性用来存储静态的

java如何停止一个运行的线程?

关于线程的一点心得 //首先导入需要的包 improt java.util.Timer;import java.io.File;import java.util.TimerTask; //首先需要创建一个线程并且一直运行,然后创建一个计时器任务来触发事件(比如创建一个stop.txt文件,如果发现文件存在则停止运行程序). public class Stop{ public static void main(String args[]){ //创建线程,运行. Count cou=new Cou

Java Swing 线程执行任务(不然界面一直处于不可点击状态)

/** * 使用了线程中断在swing进度条中的应用,在run()中调用JProgressBar的setValue()方法. * <p> * 本例应用了线程的中断,2种中断方法: * <ul> * <li>运用interrupt()方法</li> * <li>在run()中使用无限循环,然后用一个布尔什标记去控制循环的停止</li> * </ul> * 另外,还有内部类与匿名内部类的分别使用. * * @author HA

多线程(三) java中线程的简单使用

============================================= 原文链接:多线程(三) java中线程的简单使用 转载请注明出处! ============================================= java中,启动线程通常是通过Thread或其子类通过调用start()方法启动. 常见使用线程有两种:实现Runnable接口和继承Thread.而继承Thread亦或使用TimerTask其底层依旧是实现了Runnabel接口.考虑到java的

Java ThreadPoolExecutor线程池使用说明

最近研究了下ThreadPoolExecutor,发现还是有些需要琢磨的地方.先把JDK1.6文档搬过来. 一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置. 线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法.每个 ThreadPoolExecutor 还维护着一些基本的统计数据,如完成的任务数.

Java创建线程的两种方法

大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的两小节依次介绍了每一种方式. 实现Runnable接口 创建线程的最简单的方法就是创建一个实现Runnable 接口的类.Runnable抽象了一个执行代码单元.你可以通过实现Runnable接口的方法创建每一个对象的线程.为实现Runnable 接口,一个类仅需实现一个run()的简单方法,该方法声明如下:    public void run( )

在Android中使用Handler和Thread线程执行后台操作

转载自:http://www.cnblogs.com/crazypebble/archive/2011/03/23/1991829.html 声明:此文在参考<解密Google Android>一书 和 Android视频教程(www.mars-droid.com). 大家都知道,在PC上的应用程序当需要进行一些复杂的数据操作,但不需要界面UI的时候,我们会为应用程序专门写一个线程去执行这些复杂的数据操作.通过线程,可以执行例如:数据处理.数据下载等比较耗时的操作,同时对用户的界面不会产生影响

java连接oracle执行存储过程小程序

下面是一个java连接Oracle 执行一个没有返回值的存储过程的小例程. package com.test; import java.sql.*; public class procedure {     public static void main(String[] args) {         Connection ct=null;         CallableStatement cs=null;         try {             Class.forName("o

一个Windows下线程池的实现(C++)

前言 本文配套代码:https://github.com/TTGuoying/ThreadPool 先看看几个概念: 线程:进程中负责执行的执行单元.一个进程中至少有一个线程. 多线程:一个进程中有多个线程同时运行,根据cpu切换轮流工作,在多核cpu上可以几个线程同时在不同的核心上同时运行. 线程池:基本思想还是一种对象池思想,开辟一块内存空间,里面存放一些休眠(挂起Suspend)的线程.当有任务要执行时,从池中取一个空闲的线程执行任务,执行完成后线程休眠放回池中.这样可以避免反复创建线程对