0

我在多项选择题(只有 1 个正确)测试中被问到这个问题,但我不确定这个问题的答案是什么

which of these will not cause the thread to stop ?  
wait,notify,sleep,One more option provided(i dont remember)

我非常了解这些,但不确定这个问题的答案是什么,并寻找相同的答案

4

3 回答 3

2

wait--> 线程在它持有锁的对象上调用wait ,然后依赖其他线程notify

notify并且notifyAll--> 通知将唤醒线程并将它们放入可运行队列中,并且在调用锁通知的线程释放锁之后,可运行队列中的一个线程将持有锁。

sleep--> 顾名思义,将停止线程的处理并在指定的持续时间内将其置于睡眠状态。直到有人中断或超时。

所以答案是notify不会导致线程停止。

于 2013-09-05T12:26:15.850 回答
1

notify将唤醒进程或将其放入运行队列。您给出的其他两个选项将进程置于等待队列中。

于 2013-09-05T12:15:23.483 回答
0

等待和睡眠会导致线程暂时停止执行。

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 情况下的线程)上恢复执行。

鉴于这三个选项,通知将是最准确的答案

于 2013-09-05T12:19:01.913 回答