目录










那么从上面我们可以看到,因为在t线程中调用了sleep方法,使得抛出了异常——在这里我们的程序成功的捕获了该异常,进入了catch语句,打印了异常信息;
那么我们可不可以通过改变catch语句中的内容来对该线程进行不同的处理呢?当然可以!!!

🌰 代码栗子
- public class thread {
- public static void main(String[] args) throws InterruptedException {
- Thread t = new Thread(() -> {
- while (!Thread.currentThread().isInterrupted()) {
- System.out.println("线程正在运行中...");
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- // e.printStackTrace();打印异常信息
- //break; 1、立即退出
- try {
- Thread.sleep(3000);
- } catch (InterruptedException ex) {
- ex.printStackTrace();
- }
- break; // 2、稍后退出
- // 不退出,捕获到异常后什么也不干,相当于的忽略了该异常
- }
- }
- });
- System.out.println("线程开始运行");
- t.start();
- Thread.sleep(3000);
- System.out.println("控制该线程退出!");
- t.interrupt();
- }
- }
总结
🌰先来看一个栗子

从这我们可以看到因为在t1、t2start之后,t1、t2和主线程的执行顺序是由操作系统进行随机调度的,那么我们怎样才能让t1、t2线程都执行完了,主线程再记录结束的时间戳呢?
通过join方法!!!
通过join方法我们可以让main线程主动的等待(想让谁阻塞,就再谁的线程里调用join)


sheep能够让线程休眠一会!!!

🌰 实例


🌰栗子一
🌰栗子二
🌰 栗子三