java线程等待有哪些常见误区

avatar
作者
猴君
阅读量:0

  1. 使用Thread.sleep()方法来进行线程等待:Thread.sleep()方法会让当前线程休眠一段时间,而不会释放锁资源,不适合用于实现线程间的等待和通知机制。

  2. 使用Thread.join()方法来进行线程等待:Thread.join()方法会让当前线程等待目标线程执行完毕,但是如果目标线程一直没有执行完毕,会导致当前线程一直阻塞,可能会引发死锁问题。

  3. 使用busy-waiting(忙等):忙等是指在循环中不断地进行条件判断,直到条件满足才跳出循环。这样的做法会消耗CPU资源,不推荐使用。

  4. 不正确地使用wait()和notify()方法:在使用wait()和notify()方法时,必须在synchronized块中进行操作,否则会导致IllegalMonitorStateException异常。

  5. 不正确地使用Object类的wait()方法:在使用Object类的wait()方法时,必须在while循环中判断条件,而不是用if语句,否则可能会出现虚假唤醒的情况。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!