Thread 类的基本用法

@[TOC]目录
##Thread 类的基本用法

线程的创建

我们介绍5种创建线程的方法:
方法一:创建一个类,继承Thread类,重写run()方法
在这里插入图片描述
注意:我们并不要认为创建好相关的类以后线程就创建好了,我们还需要创建相对应的实例,并且调用start()方法,一个线程才算创建好了,并且启动了。
在这里插入图片描述
方法二:创建一个类,并且实现Runnable接口,并且重写run()方法
在这里插入图片描述
在这里插入图片描述
这种写法的好处是:代码的耦合度降低了
方法三:继承Thread类,以匿名内部类的形式创建
在这里插入图片描述
方法四:实现Runnable接口,以匿名内部类的形式创建

在这里插入图片描述
方法五:使用lambda表达式来创建线程(推荐使用)
在这里插入图片描述

如何获取线程实例

我们在获取实例化对象的时候,我们一般是通过 new 构造方法 的形式来获取对象。所有说,一种很简单获取线程实例的方法是通过 new 构造方法。 但是,我想问的是,我们在创建一个线程类的时候,如何获取该线程的实例。 比较简单使用:Thread.currentThread()就可以了

线程休眠

线程休眠:在规定的时间内,线程不能运行,直到到达规定的时间才可以运行。
我们通过 Thread.sleep(自己规定的时间(单位是:毫秒(ms)))
这个方法会抛出异常,需要我们手动地解决一下。
在这里插入图片描述

线程中断

有的时候,一个进程中多个线程在执行的时候,有的情况下,有的线程需要中断,这里我提供两种线程中断的方法

方法一:自己设置一个公有变量当作一个标识位
在这里插入图片描述

方法二:使用Thread自己带的标识位(重点,难点)

情况一:
在这里插入图片描述

情况二:
在这里插入图片描述
我们可以看出第二种情况线程并没有中断,只是报一个异常然后接着运行
我们要知道interrupt()方法是如何执行
在这里插入图片描述

线程的等待

使用方式:Thread对象.join();
我们无法规定线程的开始执行的顺序,但是我们可以通过join()方法规定线程结束的顺序

哪一个线程调用了join方法,其他线程要等待该线程执行完,他们才能结束
在这里插入图片描述
例如:我们有线程1,线程2和主线程,我们想让线程一和线程二执行完后,主线程在执行结束
在这里插入图片描述
我们有线程1,线程2和主线程,我们想让线程一在线程二前结束,线程二在主线程前结束
在这里插入图片描述
在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值