说出线程同步的方法

来源:互联网 发布:win7安装linux操作系统 编辑:程序博客网 时间:2024/06/05 22:33
同步是一种各线程间协调使用共享资源的一种方式。各线程间的相互通信是实现同步的重要因素,
所以 Java 提供了 wait()和 notify()等方法来使线程之间可以相互通信。
  wait():使线程处于等待状态,并且释放所持有的对象的 lock。可以与 notify()方法配套使用。
它有两种形式,一种是以毫秒为单位的一段时间作为参数,另一种是没有参数。
  sleep():使一个正在运行的线程处于阻塞状态,可以以毫秒为单位的一段时间作为参数,它可
以使得线程在设定的时间停止运行,但是在设定的时间一过,线程重新进入可执行状态。由于
sleep()是一个静态方法,所以调用此方法要捕捉 InterruptedException 异常。
  notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某
一个等待状态的线程,而是由 JVM 确定唤醒哪个线程,而且不是按优先级。
  allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让
它们竞争。只有获得锁的那一个线程才能进入可执行状态。
1 0
原创粉丝点击