1、线程:程序中单独顺序的控制流
线程本身依靠程序进行运行
线程是程序中的顺序控制流,只能使用分配给程序的资源和环境
2、进程:执行中的程序
一个进程可以包含一个或多个线程
一个进程至少要包含一个线程
3、线程的实现:(1) 继承Thread类
Thread类是在Java.lang包中定义的,继承Thread类必须重写run()方法。
(2) 实现Runnable接口
4、线程的生命周期
创建状态:准备好了一个多线程的对象
就绪状态:调用了start()方法,等待cpu进行调度
运行状态:执行了run()方法
阻塞状态:暂时停止执行,可能将资源交给其他程序执行
终止状态:线程销毁
5、常用方法
getNmae() 取得当前线程的名称
currentThread() 获得当前线程对象
isAlive() 判断线程是否启动
join() 强行启动线程
sleep() 线程休眠
yield() 线程的礼让
6、线程的优先级设置(可能性状态)
1-MIN_PRIORITY
10-MAX_PRIORITY
5-NORM_PRIORITY
7、同步与死锁
(1) 同步代码块
在代码块上架“synchronized”关键字,则次代码块就称为同步代码块
格式:synchronizde(同步对象){
需要同步的代块;
}