我在多项选择题(只有 1 个正确)测试中被问到这个问题,但我不确定这个问题的答案是什么
which of these will not cause the thread to stop ?
wait,notify,sleep,One more option provided(i dont remember)
我非常了解这些,但不确定这个问题的答案是什么,并寻找相同的答案
我在多项选择题(只有 1 个正确)测试中被问到这个问题,但我不确定这个问题的答案是什么
which of these will not cause the thread to stop ?
wait,notify,sleep,One more option provided(i dont remember)
我非常了解这些,但不确定这个问题的答案是什么,并寻找相同的答案
wait
--> 线程在它持有锁的对象上调用wait ,然后依赖其他线程notify
notify
并且notifyAll
--> 通知将唤醒线程并将它们放入可运行队列中,并且在调用锁通知的线程释放锁之后,可运行队列中的一个线程将持有锁。
sleep
--> 顾名思义,将停止线程的处理并在指定的持续时间内将其置于睡眠状态。直到有人中断或超时。
所以答案是notify
不会导致线程停止。
notify
将唤醒进程或将其放入运行队列。您给出的其他两个选项将进程置于等待队列中。
等待和睡眠会导致线程暂时停止执行。
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#sleep%28long%29
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#wait%28%29
Notify 将在之前调用过等待的线程(或 notifyAll 情况下的线程)上恢复执行。
鉴于这三个选项,通知将是最准确的答案