线程:
一、线程与进程
1、线程:程序中单独顺序的控制流。
线程本身依靠程序进行运行,线程是程序中的顺序控制流,只能使用分配给程序的资源和环境。
2、进程:执行中的程序
一个进程可以包含一个或多个线程。
一个进程至少要包含一个线程。
3、单线程
程序中只存在一个线程,实际上主方法就是一个主线程。
4、多线程
多线程是在一个程序中运行多个任务。
多线程的目的是更好的使用CPU资源。
二、线程的实现
1、线程的实现方法有两种 继承Thread类实现Runnable接口
2、Thread类
Thread是在java.lang包中定义的,继承Thread类必须重写run()方法。
定义格式
class className extends Thread{
run(){};
}
3、Runnable接口
三、线程的状态
1、线程固定的操作状态
创建状态:准备好了一个多线程对象
就绪状态:调用的start方法,等待CPU进行调度。
运行状态:执行run()方法
阻塞状态:暂时停止执行,可能将资源给其他线程使用
终止状态(死亡状态):线程销毁
四、线程的常用方法
1、取得线程名称 getName()
2、取得当前线程对象 currentThread()
3、判断线程是否运动 isAlive()
4、线程强行运行 join()
5、线程的休眠 sleep()
6、线程的礼让 yield()
五、线程的优先级
1、优先级顺序设置
1-MIN-PRIORITY
2-MAX-PRIORITY
5-NORM-PRIORITY
如果什么都不设置默认值是零
六、线程同步------同步和死锁
1、同步代码块(资源共享的时候需要同步)
在代码块上加上synchronized关键字,则此代码块称为同步代码块。
2、同步代码块格式
synchronized(同步对象){
需要同步的代码块;
}
3、同步方法
除了代码块可以同步,方法也是可以同步的。
4、方法同步格式
synchronized void 方法名称(){
七、线程的生命周期