目录
2.创建一个类实现Runnable接口.再创建Runnable实例传给Thread实例
4.使用Runnable接口,并使用匿名内部类重写run方法
一.线程的创建方法
1.显示继承Thread类,并重写run方法来指定线程执行的代码
注意:run方法中逻辑是在新创建出来的线程中被执行的代码,并不是我一定要定义这个类,一写run方法,线程就创建出来了.相当于把任务安排了,但是没开始干.
在调用start之前,系统中是没有创建出线程的,这里的调用start方法之后才真正的在系统中创建了线程,才真正开始执行run操作.
2.创建一个类实现Runnable接口.再创建Runnable实例传给Thread实例
3.创建Thread类,使用匿名内部类
4.使用Runnable接口,并使用匿名内部类重写run方法
5.使用Lambda表达式
二.线程中断
线程中断:让一个线程停下来,线程停下来的关键是让线程对应的 run方法执行(还有一个特殊的是main这个线程,对于mian来说,得是main方法执行完了,线程就完了)
1.可以手动的设置一个标志位(自己创建的变量,boolean)来控制线程是否要执行结束
但是这个做法并不严谨,更好的做法是:
2.使用Thread中内置的一个标志位来进行判定,可以通过:Thread.interrupted()这个静态方法. Thread.currentThread().isInterrupted()这个是实例方法.
补充:
三.线程等待
多个线程之间,调度顺序是不确定的,线程之间的执行是按照调度器来安排的,这个过程可以视为是"无序,随机",这样不太好,有些时候,我们需要能控制线程之间的顺序,线程等待就是其中一种,控制线程执行顺序的手段,此处的等待,主要是控制线程结束的先后顺序
补充:
四.线程休眠
五.获取当前线程实例
调用方式:Thread.currentThread(),返回的是线程对象的引用,有时候可以用this代替