线程的休眠和中断

在程序中允许一个线程进行暂时的休眠,直接使用Thread.sleep()方法即可实现休眠:

class myThread11 implements Runnable {
    public void run() {
        for (int i = 0; i < 5; i++) {
            try {
                Thread.sleep(5000);
                System.out.println(Thread.currentThread().getName()
                        + " running " + i);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }
}

public class ThreadSleepDemo {
    public static void main(String[] args) {
        myThread11 m = new myThread11();
        new Thread(m, "von‘s thread").start();
    }
}

 

当一个线程运行时,另外一个线程可以直接通过interrupt()方法中断其运行状态:

class myThread12 implements Runnable {
    public void run() {
        System.out.println("1,Begin run() method:");
        try {
            Thread.sleep(10000);
            System.out.println("2,Sleep have overd.");
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            System.out.println("3,Sleep be stoped.");
            return;
        }
        System.out.println("4,Stop run() method normally.");
    }
}

public class ThreadInteruptDemo {
    public static void main(String[] args) {
        myThread12 vMyThread = new myThread12();
        Thread thread = new Thread(vMyThread, "vThread");
        thread.start();
        try {
            thread.sleep(2000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        thread.interrupt();
    }
}

线程的休眠和中断

时间: 2025-01-01 21:02:35

线程的休眠和中断的相关文章

并发编程大师系列之:线程的定义和中断 interrupt

1.启动线程的三种方式: 1.1继承Thread类 public static class UseThread extends Thread { public void run() { System.out.println("thread run 执行!"); } } 启动线程: UseThread ut = new UseThread(); ut.start(); 1.2实现Runable接口 public static class UseRun implements Runnabl

Java多线程学习之线程的状态及中断线程

线程的状态 新建(new):当线程被创建时,它只会短时间处于这种状态.它已经分配了必要的系统资源,完成了初始化.之后线程调度器将把这个线程转变为可运行或者阻塞状态: 就绪(Runnable):在这种状态下,只要调度器分配时间片给线程,线程就可以运行了: 阻塞(Blocked):有某个条件阻止线程运行,调度器将忽略阻塞状态的线程,不会分配时间片给它,直到线程进入就绪状态,它才有可能执行: 死亡(Dead):处于死亡或者终结状态的线程将不再是可调度的,并且也不会被分配到时间片.任务死亡的方式通常是从

并发基础(九) java线程的终止与中断

1.简单了解一下:为何不赞成使用 Thread.stop.Thread.suspend 和 Thread.resume? ??suspend .resume.stop方法分别完成了线程的暂停.恢复.终止的工作.不建议使用原因:是因为这三个方法带来的副作用,如suspend( )方法,调用后,线程就会一直占用资源睡眠,直到调用resume( )恢复后,才可以运行.这样很容易引发死锁.同样,stop( )方法在终结一个线程时不会保证线程的资源正常释放,因此会导致程序可能工作在不确定的状态下. ??线

java 线程的休眠和唤醒

Treead中使用wair() 和notify() /*需求: 使用双线程交替打印1,2,3,4....... eg: T11 ------->1 T22 ------->2 T11 ------->3 T22 ------->4 T11 ------->5 T22 ------->6 T11 ------->7 T22 ------->8 .................... *可以看出来这里的双线程是同步的* */ ps:我也是一个新手,有问题欢迎交

【软件构造】第十章 线程和分布式系统

本章关注复杂软件系统的构造. 本章关注复杂软件系统的构造. 这里的"复杂"包括三方面: 这里的"复杂"包括三方面: (1)多线程序 (2)分布式程序 (3) GUI 程序 Outline 并发编程 Shared memory Message passing 进程和线程 线程的创建和启动,runable 时间分片.交错执行.竞争条件 线程的休眠.中断 线程安全的四种策略 约束(Confinement) 不变性 使用线程安全的数据类型 同步与锁 死锁 以注释的形式撰写线

【软件构造】课程提纲(7)

第十章 1. 进程和线程:两种不同的并发模块 (1)进程:正在运行程序的一个实例,拥有自己私有专用的内存空间 ·可抽象为虚拟计算机,拥有独立的执行环境和完整的资源 ·进程间通常不共享内存,不能访问其他进程的内存和对象,需要特殊机制 ·进程通信采用消息传递方式,即标准I/O流,为了实现进程间通信,大多数操作系统都支持"进程间通信(IPC)资源",如管道和socket (2)线程:正在运行程序的一个执行路径(一个进程可对应多个线程) ·线程有自己的堆栈和局部变量,但是多个线程共享内存空间

JAVA学习---多线程

1.线程概述 2.线程实现(2种方式) 2.1通过Thread子类实现(Run方法.Start方法) //继承Thread的方法开启多线程 public class Demo11_1 extends Thread{ public void run() { //线程运行的程序内容 for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } } pub

(七)期末复习重点及课程心得

1-2章 ? 软件构造的多维度视图 ? 软件构造的阶段划分.各阶段的构造活动 ? 内部/外部的质量指标 ? 软件配置管理SCM与版本控制系统VCS ? Git/GitHub 第3章 ? 基本数据类型.对象数据类型 ? 静态类型检查.动态类型检查 ? Mutable/Immutabl ? 值的改变.引用的改变 ? 防御式拷贝 ? Snapshot diagra? Specification.前置/后置条件 ? 行为等价性 ? 规约的强度 ? ADT操作的四种类型 ? 表示独立性 ? 表示泄露 ?

转:【Java并发编程】之二:线程中断(含代码)

转载请注明出处:http://blog.csdn.net/ns_code/article/details/17091267 使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回.这里需要注意的是,如果只是单纯的调用interrupt()方法,线程并没有实际被中断,会继续往下执行. 下面一段代码演示了休眠线程的中断: [java] view plain c