Java 如何进行线程同步
线程的同步知识也是公司面试必考知识,同学们在去面试前一定要复习一下,下面就给大家复习一下线程的知识:
Java 如何进行线程同步
线程在执行过程中,可以处于下面几种状态:
就绪(Runnable):线程准备运行,不一定立马就能开始执行。
运行中(Running):进程正在执行线程的.代码。
等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。
睡眠中(Sleeping):线程被强制睡眠。
I/O阻塞(Blocked on I/O):等待I/O操作完成。
同步阻塞(Blocked on Synchronization):等待获取锁。
死亡(Dead):线程完成了执行。
线程的同步主要靠下面几个方法:
1、wait():使一个线程处于等待状态,并且释放所持有的对象的lock,注意wait的线程是不会自动唤醒的。
2、sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常,注意这个方法是不会释放锁的,而是持有锁停止多少秒后自动唤醒。
3、notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
4、notityAll():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
【Java 如何进行线程同步】相关文章:
Java线程同步的优先级介绍12-08
java多线程同步块实例讲解素材11-24
浅谈如何使用java多线程12-06
java多线程介绍12-07
java多线程教程11-21
什么是java主线程12-07
关于Java多线程介绍11-22
Java线程面试题10-05
Java 5线程池使用09-29