线程是进程中执行运算的最小单位,进程执行时可以产生多个线程,线程必须在进程中执行。线程可以完成一个独立任务的顺序控制流程。
一个程序至少自动拥有一个线程,为主线程。(public void main()方法是主线程的入口,Java程序运行时首先执行这个方法)。
编写一个线程的过程:
1.定义一个线程,指明这个线程所要执行代码,完成的功能
2.创建线程对象
3.启动线程(start() 方法启动线程)
4.终止线程
2.创建线程的方法
(1)使用 Thread 创建线程
创建线程时继承Thread类重写run()方法。线程执行的代码写在run()方法中。
并使用start()方法启动线程。
定义一个类继承Thread类,实现run()方法,创建线程
(2)使用Runnable接口创建线程
类通过实现Runnable接口,实现接口中run()方法创建线程。
Thread类中常用方法
线程的状态
线程的生命周期分为四个阶段:新生,可运行,阻塞,死亡。
线程调度
1.线程优先级
线程优先级为1-10,默认值是5。每个优先级对应一个Thread类的公用静态常量。
public static final int NORM_PRIORITY=5;
public static final int MIN_PRIORITY=1;
public static final int MAX_PRIORITY=10;
其优先级可以通过 线程对象名.setPriority(int grade) 更改。
2.线程调度的方法
(1) join()方法 阻塞线程(当前线程暂停执行,知道另外线程执行完毕以后,线程在继续执行。)
(2)sleep()方法阻塞线程(当前线程进入休眠时间,休眠时间结束继续执行)
(3)yield()方法阻塞线程(当前线程暂停执行,若无其他等待执行的线程则继续执行当前线程)