Java -- 用户线程和守护线程--线程同步机制
目录
1. 线程方法
2. 用户线程和守护线程
3. 线程的生命周期
4. 线程同步机制
1. 线程方法
1.1 yield:线程的礼让,让出cpu,让其他线程执行,但礼让的时间不确定,所以也不一定礼让成功。
1.2 join:线程的插队。插队的线程一旦插队成功,则肯定先执行完插入的线程所有的任务。
2. 用户线程和守护线程
1. 用户线程:也叫工作线程,当线程的任务执行完成或通知方式结束
2. 守护线程:一般是为工作线程服务的,当所有的用户线程结束,守护线程自动结束
3. 常见的守护线程:垃圾回收机制
3. 线程的生命周期
1. 线程状态
NEW:尚未启动的线程处于此状态
RUNNABLE:在java虚拟机中执行的线程
BLOCKED: 被阻塞等待监视器锁定的线程
WAITING: 正在等待另一个线程执行特定动作的线程
TIMED_WAITING : 正在等待另一个线程执行动作达到指定等待时间的线程
TERMINATED :已退出的线程
4. 线程同步机制
1. 在多线程编制,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何同一时刻,最多有一个线程访问,以保证数据的完整性
2. 具体方法 - Synchronized
1.1 同步代码块
synchronized(对象){ //得到对象的锁,才能操作同步代码
//需要被同步的代码
}
1.2 synchronized还可以放在方法声明中,表示整个方法-同步为方法
public synchronized void m (String name){
//需要被同步的代码
}