1.什么是线程?
现代操作系统调度的最小单元是线程,在一个进程里面可以创建多个线程,这些线程都有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量,处理器在这些线程上高速切换,让使用者感觉到这些线程在同时执行
2.多线程的好处?
1.更多的处理器核心
2.更快的响应时间,异步任务并行执行
3.更好的编程模型
3.线程的状态
NEW:初始状态,线程被构建,但是还没有调用start()
RUNNABLE:运行状态,Java线程将操作系统中的就绪和运行两种状态统称成为运行中
BLOCKED:阻塞状态,表示线程阻塞于锁
WAITING:等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出的一些特定动作
TIME_WAITING:超时等待状态,该状态不同于WAITING的是它是可以在指定的时间自行返回的
TREMINATED:终止状态,表示当前线程已经执行完毕
Java线程状态变化
4.守护线程
守护线程是一种支持性的线程,因为它主要被用作程序中后台调度以及支持性工作。
当一个JVM中不存在非Daemon线程的时侯,JVM将会退出
可以通过 Thread.setDaemon(true) 将线程设置为Daemon线程
5.线程的创建、启动、中断
创建:线程对象的构建,Java中的线程于Thread对象一一对应
启动:调用线程对象的statrt()
中断:中断可以理解为线程的一个标识位属性,它表示一个运行中间线程是否被其他线程进行了中断操作,中断好比其他线程对该线程打了个招呼,其他线程通过调用该线程的interrupt()方法对其进行中断。