从头认识多线程-1.7 迫使线程停止的方法-异常法的扩展(Sleep的Exception)

这一章节我们来讨论一下异常法的扩展Sleep的Exception。

1.使用情景

有些时候我们使用多线程执行一项任务,但是我们会对这个任务的进行时间进行评估,任务某个值之后就是超时,这个时候必须终止任务,并返回信息给客户


2.代码清单

package com.ray.deepintothread.ch01.topic_7;

public class StopBySleep {
	public static void main(String[] args) throws InterruptedException {
		ThreadFive threadFive = new ThreadFive();
		threadFive.start();
		Thread.sleep(200);
		threadFive.interrupt();
	}
}

class ThreadFive extends Thread {

	@Override
	public void run() {
		System.out.println("------------begin-------------");
		try {
			System.out.println("------------working-------------");
			sleep(2000);
		} catch (InterruptedException e) {
			System.out.println("------------exit-------------");
		}
		super.run();
	}
}


输出:

------------begin-------------
------------working-------------
------------exit-------------


从代码和输出那里可以看到,当前任务执行的时间是2秒,但是我们认为200毫秒的运行就已经算是超时,这个时候我们必须停止线程,然后给用户返回信息。


总结:这一章节主要对异常法进行扩展,通过对sleep方法的异常抛出,来作为终止线程的一种方式。


我的github:https://github.com/raylee2015/DeepIntoThread

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值