线程基本概念
程序:可执行文件
进程:操作系统进行资源分配的基本单位
比如说硬盘中有的一个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:线程结束

**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。