线程基本概念

程序:可执行文件
过程:操作系统进行资源分配的根本单位

比如说硬盘中有的一个qq.exe程序,咱们双击它,操作系统就会把它load到内存中,变成一个过程,并为它提供一些资源(文件描述符,端口号等等)。一个程序能够开启很多过程。

线程:过程外部调度执行的根本单位,多个线程共享资源
纤程:是用户态的线程,是线程中的线程,切换和调度不须要通过OS(操作系统)

创立线程的5种形式

1.继承Thread类,重写run办法
2.实现Runnable接口,实现run办法(这种形式更好,因为一个类能够实现多个接口,但只能继承一个类)
3.应用Lambda表达式
4.应用线程池
5.实现callable接口,实现call办法(callable和Runnable的区别在于call办法是有返回值的run办法无返回值)

线程的状态

1.new:线程刚刚创立,还没有启动
2.runnable:可运行状态,由线程调度器能够安顿执行,包含ready和running两种细分状态
3.waiting:期待被唤醒
4.timed waiting:定时被唤醒
5.blocked:被阻塞,正等待锁
6.terminated:线程完结